简单的MySql游标创建

 
  
 1 DROP PROCEDURE IF exists proc_updusercourse_statistics_performance;
 2 CREATE PROCEDURE proc_updusercourse_statistics_performance() 
 3 BEGIN
 4   -- 游标返回变量
 5     DECLARE _school_id BIGINT(18);
 6     DECLARE _course_count INT(8);
 7     DECLARE _lw_month INT(10);
 8     DECLARE _lw_week INT(10);
 9 
10   -- 游标状态标志
11     DECLARE flag BOOLEAN DEFAULT TRUE;
12     DECLARE cur CURSOR for 
13       select school_id,sum(course_count) course_count,lw_month,lw_week from tb_teacher_performance group by lw_week,lw_month,school_id;
14 
15     -- 游标状态赋值
16     DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag = FALSE;
17 
18     OPEN cur;
19 
20     FETCH cur INTO _school_id,_course_count,_lw_month,_lw_week;
21     while flag do
22            update tb_usercourse_statistics set performance_course_count = _course_count where school_id = _school_id and lw_month = _lw_month and LW_week = _lw_week;
23   FETCH cur INTO _school_id,_course_count,_lw_month,_lw_week;
24     COMMIT;
25     END while;
26 
27   CLOSE cur;
28 END;
29 -- 调用存储过程
30 call proc_updusercourse_statistics_performance();
 
  

 

 1 DROP PROCEDURE IF exists StatisticStore1;
 2 CREATE PROCEDURE StatisticStore1() 
 3 BEGIN
 4     DECLARE c_name VARCHAR(50);
 5     DECLARE c_id INT(6);
-- 声明结束标志
6 DECLARE i int default 1; 7 DECLARE b int default 0; 8 DECLARE cur CURSOR for SELECT name,id FROM tb_sort; 9 DECLARE CONTINUE HANDLER FOR NOT FOUND SET b = 1; 10 -- 开启游标 11 OPEN cur; 12 13 FETCH cur INTO c_name,c_id; 14 while b<>1 do 15 INSERT INTO tb_books (NAME,author,buytime,sort_id) VALUES (concat(c_name,'下的图书',i),'ACCP',now(),c_id); 16 FETCH cur INTO c_name,c_id; 17 END while; 18 -- 关闭游标 19 CLOSE cur; 20 END; 21 22 call StatisticStore1();

 

转载于:https://www.cnblogs.com/jason123/p/6846740.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值