语法细节不多说,网上有很多文章,而且概念很多。直接上一段代码:
#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存储过程 ,介绍mysql5.0的存储过程的写法 。。收藏一下
什么是存储过程 简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法; ps:存储过程跟触发器有点类似,都是一组...MySQL存储过程的创建 语法 CREATE PROCEDURE sp_name (
主要介绍了Mysql带返回值与不带返回值的2种存储过程写法,需要的朋友可以参考下
MYSQL存储过程技术。主要讲解常用存储过程写法。
当在写存储过程in里面的列表用个传入参数代入的时候,就需要用到如下方式: 主要用到find_in_set函数 代码如下: select * from table_name t where find_in_set(t.field1,’1,2,3,4′); 当然还可以比较笨实的方法,...
主要介绍了MySQL实现类似于connect_by_isleaf的功能MySQL方法或存储过程,需要的朋友可以参考下
然而存储过程中的写法用的就是游标的形式。 【简介】 游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。 游标充当指针的作用。 尽管游标能遍历结果中的所有行,但他一次只指向一行。 ...
在学习的过程中,发现两者的写法是不同的。 <触发器作用> 1、在SQL中建立两张表sql_test,sql_tem。(两张表的字段是一样的) 代码如下: create table sql_test ( id int, name varchar(16) ) create table sql_...
或者 只可以通过存储过程来实现, 单行的锁定 BEGIN; SELECT book_number FROM book WHERE book_id = 123 FOR UPDATE; --这里for update , 以前用Oracle的时候也是有这个行锁 // ... UPDATE book SET book_number ...
1.6.2 mysql5.5存储过程支持limit变量 54 1.7 mysql5.1升级为mysql5.5 55 1.7.1 采用mysql_upgrade升级授权表方式升级 55 1.7.2 直接安装mysql5.5,采用数据导出/导入方式升级 59 1.8 性能测试:mysql5.5与...
最近看到很多关于MySql相关的语法,小白也想学习一些MySQL的存储过程的写法,因此就想安装MySQL,过程中遇到过一些问题,这里记录下来~ 第一步:下载 首先,去官网下载匹配电脑的MySQL版本,网址如下:...
·存储过程的基本写法 ·存储过程的作用 ·存储过程的优缺点 ·存储过程的应用场景 3、触发器 ·什么是触发器 ·触发器的的基本写法 ·触发器的功能 ·触发器的优缺点 ·触发器的两种形式 ·触发器的应用场景 4、...
简单写法可以省去字段名,但是要插入全部字段。 批量插入 单条插入和批量插入的效率问题 mysql多条数据插入效率大于单条数据插入 删除记录 delete from 表名 [where 条件] 如果没有指定条件,会将表中数据一条一条...
支持常规数据库的MSQSqlServer,MySql,Orcalce等常规数据库并快速开发,它根据工具的开发经验集成了大量数据集,例如不带SQL查询表达式的Lambada,添加以及删除,实体克隆,表的批量和参数,事务,实体或存储过程的...
第一种是最传统的写法,用存储过程中的变量作为分页的乘数 代码如下: [c-sharp] view plaincopyprint?create proc p_paged1 @pageSize int,@currentPage int as select top (@pageSize) * from student where id not...
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。这篇文章主要介绍了mybatis中批量插入的两种方式(高效插入)的相关资料,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧