Mysql用navicat做定时计划,使用游标loop做每隔1小时,更新表格字段
BEGIN
/*局部变量的定义 declare*/
declare ids INT(11);
declare sts VARCHAR(30);
declare starTime DATE;
declare tod DATE;
DECLARE done INT DEFAULT FALSE; -- 自定义控制游标循环变量,默认false
declare stop int default 0;
declare cur cursor for(
SELECT id,patrol_sts,STR_TO_DATE(CONCAT(patrol_date,' ',begin_date), '%Y-%m-%d %H:%i:%s') as start_time,now() as today FROM patrol_plan WHERE patrol_plan.patrol_sts = 'TASK_02');
/*这把 游标 异常后 捕捉并设置 循环使用 变量 stop 为 null 跳出循环。*/
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
/*开游标*/
OPEN cur;
myLoop: LOOP
/*游标向下走一步,将查询出来的值付给定义的变量*/
FETCH cur INTO ids,sts,starTime,tod;
IF done THEN -- 判断是否继续循环
LEAVE myLoop; -- 结束循环
END IF;
update patrol_plan set patrol_sts = 'TASK_07' WHERE timestampdiff(SECOND,starTime,tod)>345600;-- 超过巡查日期4天就更新为已过期
COMMIT; -- 提交事务
END LOOP myLoop;
/*游标向下走一步*/
CLOSE cur;
END
1、navicat中的计划设置
2、在这里填写定义
导入
如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。