小码农如何学习MySQL的定时任务详解
自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务,来取代原先只能由操作系统的计划任务来执行的工作。事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里
一、查看定时策略是否开启
show variables like '%event_sche%';
开启定时策略:
set global event_scheduler=1;
这里的设置,当mysql重启后,又会自动关闭。如果需要一直开启,需要在my.ini中配置如下:
Event_scheduler=on
二、创建存储过程
use test:数据库名delimiter // :这个是将mysql中以;(分号)结尾的规定修改为以//(双斜杠)为语句结束符
三、创建定时任务
create event day_event:是创建名为run_event的事件;
创建周期定时的规则,意思是每分钟执行一次;
on completion preserve disable是表示创建后并不开始生效;
do call test_procedure ()是该event(事件)的操作内容。
四、定时任务操作
1、查看定期任务
2、开启或关闭定时任务
五、定时规则
1、周期执行–关键字 EVERY单位有:second,minute,hour,day,week(周),quarter(季度),month,year
on schedule every 1 week //每周执行1次
2、在具体某个时间执行–关键字 AT
3、在某个时间段执行–关键字STARTS ENDS