mysql存储过程简历游标

博客分类: mysql 阅读次数: comments

mysql存储过程简历游标


DROP PROCEDURE IF exists proc_updusercourse_statistics_performance;
CREATE PROCEDURE proc_updusercourse_statistics_performance()
BEGIN

BEGIN – 游标返回变量 DECLARE _school_id BIGINT(18);

 ` DECLARE _course_count INT(8);`  
 
 ` DECLARE _lw_month INT(10);`  
 
  `DECLARE _lw_week INT(10);`

-- 游标状态标志
  DECLARE flag BOOLEAN DEFAULT TRUE;
  DECLARE cur CURSOR for 
    select school_id,sum(course_count) course_count,lw_month,lw_week from tb_teacher_performance group by lw_week,lw_month,school_id;

  -- 游标状态赋值
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag = FALSE;

  OPEN cur;

  FETCH cur INTO _school_id,_course_count,_lw_month,_lw_week;
  while flag do
         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;
FETCH cur INTO _school_id,_course_count,_lw_month,_lw_week;
  COMMIT;
  END while;

CLOSE cur;   ` END; `  `  -- 调用存储过程 `
call proc_updusercourse_statistics_performance();