Mysql定时任务
1.查看是否开启事件调度器:
SHOW VARIABLES LIKE ‘event_scheduler‘; #没有开启则无法启用定时器(0代表:off,1代表:on)#若未开启则执行SET GLOBAL event_scheduler = ON; #开启定时器
2.创建EVENT事件语法:
#例.每隔10秒执行一次 CREATE EVENT 定时器名称 #event事件名 ON SCHEDULE EVERY 10 SECODE #每隔10秒调度一次(事件可以自行设置[例:MONTH,DAY,SECODE,......]) ON COMPLETION PRESERVE #当本次event到期了,event会被disable,但是该event还是会存在 ENABLE #开启event调度 DO CALL 存储过程名(); #调度要定时执行的操作(调度任务调用上述创建的存储过程周期执行任务) #例.每月的1月1日12时执行 CREATE EVENT 定时器名称 ON SCHEDULE EVERY 1 MONTH STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 12 HOUR) #设置开始时间,间隔时间执行 ON COMPLETION PRESERVE ENABLE DO CALL 存储过程名();
注:存储过程可以参考本人上一篇https://www.cnblogs.com/Moming0/p/11428960.html
3.开启/关闭定时事件
#开启定时事件 ALTER EVENT 定时器事件名 ON COMPLETION PRESERVE ENABLE; #关闭定时事件 ALTER EVENT 定时器事件名 ON COMPLETION PRESERVE DISABLE;
4.删除定时事件
DROP EVENT 定时事件名;
注:通过Navicat工具直接创建请参考本文https://blog.csdn.net/tantexian/article/details/50317829
原文地址:https://www.cnblogs.com/Moming0/p/11429833.html
时间: 2024-10-05 21:11:01