`

MySql存储过程写法

阅读更多

语法细节不多说,网上有很多文章,而且概念很多。直接上一段代码:

#mysql存储过程的单行注释用“#”,如果使用“--”则必须在后面使用至少一个空格,否则存储过程编译不通过
create procedure addWebGameAdmin(in gameId int)
begin
	declare gameTitle varchar(100) character set utf8; -- 存储过程变量的字符集声明,否则中文出现乱码
	declare adminId varchar(50);  -- 管理员id
	declare adminAmount varchar(100); -- 管理员账号:游戏名称+admin
	declare adminPwd varchar(50); -- 管理员密码:md5(账号+密码)
	declare roleId varchar(50); -- 权限id
	
	declare curVar varchar(50) default ''; -- 当前游标指向的结果
	declare stop int default 0;-- 处理游标到达最后一行的情况
	declare resultSet cursor for select node_id from gaga_lianyun_manage_node; -- 创建游标
	declare continue handler for sqlstate '02000' set stop=1; -- 声明游标的异常处理,设置一个终止标记
	
	select title into gameTitle from php_ecms_webgame where id=gameId;
	if gameTitle is not null then
		set adminId=replace(uuid(),'-','');  -- (这里使用了replace函数和uuid函数,)管理员id
		
		set adminAmount=concat(gameTitle,'admin');   -- (字符串连接函数concat)管理员账号
		set adminPwd=md5(concat(adminAmount,'123')); -- 管理员密码
		insert into gaga_lianyun_admin (admin_id,amount,pwd,game_id) values (adminId,adminAmount,adminPwd,gameId); -- 插入记录
		open resultSet;
			
			fetch resultSet into curVar;
			-- 判断游标是否已经到达最后
			while stop <> 1 do
				select replace(uuid(),'-','') into roleId;   -- 权限id
				insert into gaga_lianyun_manage_node (role_id,admin_id,manage_node_id) values (roleId,adminId,curVar);
				fetch resultSet into curVar; -- 读取下一行数据
			end while;
		close resultSet;
		commit;
	end if;
	
end;

 

分享到:
评论

相关推荐

    mysql存储过程

    存储过程的简单介绍,通过一个具体的案例,实现了存储过程的主要写法。

    mysql复杂存储过程实例(游标、临时表、循环、递归)

    本资源结合实例实现一个复杂的存储过程,存储过程中有用到游标、临时表、循环、递归等知识,sql文件附有实例数据表创建的sql语句。

    MYSQL的存储过程和函数简单写法

    【MySQL存储过程与函数简介】 MySQL的存储过程和函数是数据库管理中强大的工具,它们允许开发者将一组SQL语句组织在一起,形成一个可重用的模块,以执行复杂的业务逻辑。这种概念类似于高级编程语言(如Java)中的...

    mysql存储过程.chm

    mysql存储过程 ,介绍mysql5.0的存储过程的写法 。。收藏一下

    数据库存储过程的写法\\连接各种数据库写法

    ### 数据库存储过程的写法及连接各种数据库的方法 #### 概述 本文将详细介绍如何在不同的数据库系统中编写存储过程以及如何建立与这些数据库的连接。存储过程是一种预编译的SQL代码块,它可以存储在数据库服务器上...

    Mysql带返回值与不带返回值的2种存储过程写法

    MySQL存储过程是数据库编程的重要组成部分,它允许程序员封装一系列的SQL语句,形成一个可重复使用的函数或过程。存储过程可以提高数据操作的效率,并且能够更好地管理数据库逻辑。本篇文章将详细介绍两种不同类型的...

    JAVA&C#调用存储过程代码

    在IT领域,数据库操作是应用程序开发中的重要环节,而存储过程是数据库中预编译的SQL语句集合,可以提高数据处理效率并提供更高级的功能。本文将详细讲解如何使用Java和C#这两种广泛使用的编程语言来调用数据库中的...

    Mysql游标(循环操作)

    在MySQL中,游标是一种数据库对象,主要用于处理存储过程中的结果集。游标允许我们逐行地读取查询结果,这对于需要对每一行数据执行特定操作的情况非常有用。通过使用游标,我们可以实现更加灵活的数据处理逻辑。 #...

    用MYSQL构建健壮的数据中心

    ### 使用MySQL构建健壮的数据中心 在当今数字化时代,数据已成为企业最为宝贵的资产之一。一个高效、稳定且安全的数据中心不仅能够确保业务连续性,还能为企业的数据分析与决策支持提供强有力的支持。MySQL作为全球...

    绝对惊世骇俗的SQL写法

    "绝对惊世骇俗的SQL写法"这一标题揭示了我们即将探讨的是一些非同寻常的MySQL查询技巧,这些技巧可能挑战了常规的编程思维,能为程序员带来全新的理解和操作体验。描述中的“耗费了本人大量心血”暗示了作者在深入...

    MySql网络验证登陆注册源码 带MD5写法

    MySQL是世界上最流行的开源关系型数据库管理系统之一,广泛应用于各种规模的企业和项目中。在这个源码中,"MySql网络验证登陆注册源码 带MD5写法" 提供了一种实现用户登录注册功能的方式,它涉及到的主要知识点包括...

    常用的mysql语句写法

    在实际操作中,还需要结合业务需求,灵活运用索引、存储过程、触发器等高级特性,以优化数据库性能和实现复杂的业务逻辑。记住,实践是检验理论的最好方式,所以多动手操作,不断积累经验,才能真正成为MySQL的大师...

    MySQL实现类似于connect_by_isleaf的功能MySQL方法或存储过程

    在MySQL中,面对类似Oracle的`connect_by_isleaf`功能的需求,即查找并修改指定ID的所有子级记录,可以通过自连接、存储过程或者递归函数等方法实现。这里我们主要探讨两种MySQL的实现方式:一种是使用用户定义的...

    c# MySql与SQL sever的区别.docx

    在 C# 中,Sql Server 和 MySql 的存储过程写法有所不同。 * Sql Server: + 多个语句之间可以用 `;` 分隔,也可以不用。 + 执行动态 SQL 需要使用 `Execute` 语句。 + `Print` 语句可以打印出执行的 SQL 语句。...

    详解Mysql 游标的用法及其作用

    然而存储过程中的写法用的就是游标的形式。 【简介】 游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。 ​ 游标充当指针的作用。 ​ 尽管游标能遍历结果中的所有行,但他一次只指向一行。 ...

    MySQL性能提升

    而更新操作相对较弱,因为它涉及到写存储引擎日志、写MySQL的二进制日志,以及服务器和存储层的分布式事务协议。 在并发控制方面,讨论了全局锁对性能的影响,指出SYSCPU过高的问题,包括事务列表、读视图列表和锁...

    MySQL与SQL的触发器的不同写法

    在数据库管理中,触发器是一种特殊的存储过程,它在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行。触发器可以帮助我们实现复杂的业务逻辑,比如数据的一致性检查、日志记录或者同步其他相关表的数据...

    MySQL&MS SQLServer驱动及常用数据库JDBC连接写法

    在IT行业中,数据库是存储和管理数据的核心工具。在Java编程环境下,我们通常使用Java Database Connectivity (JDBC) API来与各种数据库进行交互。本文将详细介绍MySQL和Microsoft SQL Server这两种广泛应用的关系型...

Global site tag (gtag.js) - Google Analytics