• ADADADADAD

    mysql存储过程中游标怎样遍历[ mysql数据库 ]

    mysql数据库 时间:2024-11-29 09:53:22

    作者:文/会员上传

    简介:

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

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    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;OPENexamIds; -- 遍历read_loop: LOOP-- 取值 取多个字段FETCHNEXT 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 startTimefrom t_exam WHERE EXAM_ID = id ;SELECT EXAM_END_TIME INTO endTimefrom t_exam WHERE EXAM_ID = id ;IF curTime >= startTime AND endTime > curTimeTHENUPDATE 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 endTimefrom 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存储过程中游标怎样遍历.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysql过程中