存储过程调用存储过程:
其实很简单。。。如果不带返回值
直接在存储过程中调用:call 存储过程名称(参数)
如果有返回值
call generatorAuthorCode(@c); select @c into authorCode;
游标使用:
DECLARE cur_name CURSOR FOR select field from table_name ; #我的理解这个cur_name 可以看成一个集合
open cur_name; //开启
FETCH cur_mark INTO markName; //获取值
#内容
close cur_name; //关闭
举个栗子:
BEGIN DECLARE markCount int; #mark标签总数 DECLARE iniCount int DEFAULT 0; #循环初始状态 ,初始值为0 DECLARE markName VARCHAR(20);# 定义标签名 DECLARE cur_mark CURSOR FOR select mark_name from yq_book_mark; select count(1) into markCount from yq_book_mark; #查询mark总数 OPEN cur_mark; FETCH cur_mark INTO markName; #。。。 while iniCount <= markCount DO #循环将yq_book_mark表中的数据存入 INSERT INTO yq_tags (tag_name,tag_status,create_time,create_user) VALUES(markName,'0',NOW(),'admin'); set iniCount = iniCount + 1; FETCH cur_mark INTO markName; #。。。每次遍历取的值都不一样 end while; close cur_mark; END