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

mysql存储过程中游标遍历的方法:
CREATE DEFINER=`root`@`%` PROCEDURE `updStatus`()BEGINDECLARE 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 THENLEAVE read_loop;END IF;SELECT EXAM_STATUS INTO estatus FROM t_exam WHERE EXAM_ID = id ;IF estatus =1 THENSELECT 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 THENUPDATE t_exam SET EXAM_STATUS = 2 WHERE EXAM_ID = id;ELSEIF curTime >= endTime THENUPDATE t_exam SET EXAM_STATUS = 3 WHERE EXAM_ID = id;END IF;ELSESELECT NOW() INTO curTime;SELECT EXAM_END_TIME INTO endTime from t_exam WHERE EXAM_ID = id ;IF curTime >= endTime THENUPDATE t_exam SET EXAM_STATUS = 3 WHERE EXAM_ID = id;END IF;END IF; END LOOP; CLOSE examIds;END
更多相关免费学习推荐:mysql教程(视频)
Revid AI
AI短视频生成平台
96 查看详情
![]()
以上就是mysql存储过程中游标如何遍历的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1030520.html
微信扫一扫
支付宝扫一扫