mysql存储过程中游标如何遍历

互联网 20-10-28

mysql存储过程中游标遍历的方法:首先取值,取多个字段;然后遍历数据结束标志,将结束标志绑定到游标,代码为【DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;】。

mysql存储过程中游标遍历的方法:

CREATE DEFINER=`root`@`%` PROCEDURE `updStatus`() BEGIN DECLARE startTime DATETIME; DECLARE endTime DATETIME; DECLARE curTime DATETIME; DECLARE id VARCHAR(36);  DECLARE estatus VARCHAR(4);  -- 遍历数据结束标志     DECLARE done INT DEFAULT FALSE;     -- 游标     DECLARE examIds CURSOR FOR SELECT EXAM_ID FROM t_exam WHERE EXAM_STATUS = 1 or EXAM_STATUS = 2;     -- 将结束标志绑定到游标     DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN  examIds;          -- 遍历     read_loop: LOOP -- 取值 取多个字段 FETCH  NEXT from examIds INTO id; IF done THEN LEAVE read_loop; END IF; SELECT EXAM_STATUS INTO estatus FROM t_exam WHERE EXAM_ID = id ; IF estatus =1 THEN SELECT NOW() INTO curTime; SELECT EXAM_START_TIME INTO startTime  from t_exam WHERE EXAM_ID = id ; SELECT EXAM_END_TIME INTO endTime  from t_exam WHERE EXAM_ID = id ; IF curTime >= startTime AND endTime > curTime  THEN UPDATE t_exam SET EXAM_STATUS = 2 WHERE EXAM_ID = id; ELSEIF curTime >= endTime THEN UPDATE t_exam SET EXAM_STATUS = 3 WHERE EXAM_ID = id; END IF; ELSE SELECT NOW() INTO curTime; SELECT EXAM_END_TIME INTO endTime  from t_exam WHERE EXAM_ID = id ; IF curTime >= endTime THEN UPDATE t_exam SET EXAM_STATUS = 3 WHERE EXAM_ID = id; END IF; END IF;     END LOOP;       CLOSE examIds; END

更多相关免费学习推荐:mysql教程(视频)

以上就是mysql存储过程中游标如何遍历的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 遍历
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:如何在官网上下载mysql驱动

相关资讯