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