Mysql用navicat做定时计划,使用游标loop做每隔1小时,更新表格字段

本文介绍了如何在Navicat中设置定时计划,利用MySQL的游标和LOOP语句,实现每小时定期更新表格中的特定字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值