Mysql定时任务详情

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

猜你喜欢

转载自www.cnblogs.com/Moming0/p/11429833.html