我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

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

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

华安网站建设公司成都创新互联,华安网站设计制作,有大型网站制作公司丰富经验。已为华安上1000+提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的华安做网站的公司定做!

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存储过程中游标如何遍历
转载来于:http://mswzjz.cn/article/cpceoc.html

其他资讯