检查有关配置:show variables like '%sche%';
1、开启配置
update orders set statusFlag=2;
show create event my_scheduler_task
DROP EVENT IF EXISTS my_scheduler_task
如何设置执行的时间?
CREATE EVENT test_event ON SCHEDULE EVERY 1 DAY STARTS '2012-09-24 00:00:00' ON COMPLETION PRESERVE ENABLE DO CALL test_procedure();
EVERY 后面的是时间间隔,可以选 1 second,3 minute,5 hour,9 day,1 month,1 quarter(季度),1 year
如果需要每天指定时间运行任务,那就需要指定开始时间和频次,如下所示:
create event shopCartCleanerListener on schedule every 1 day starts '2015-01-01 00:00:00' on completion preserve enable do update shopCart set cart = null;
下面给几个实例:
从2013年1月13号0点开始,每天运行一次
ON SCHEDULE EVERY 1 DAY STARTS '2013-01-13 00:00:00'
从现在开始每隔九天定时执行:
ON SCHEDULE EVERY 9 DAY STARTS NOW() ;
每个月的一号凌晨1 点执行 :
on schedule every 1 month starts date_add(date_add(date_sub(curdate(),interval day(curdate())-1 day),interval 1 month),interval 1 hour);
每个季度一号的凌晨1点执行 :
on schedule every 1 quarter starts date_add(date_add(date(concat(year(curdate()),'-',elt(quarter(curdate()),1,4,7,10),'-',1)),interval 1 quarter),interval 1 hour);
每年1月1号凌晨1点执行:
on schedule every 1 quarter starts date_add(date_add(date(concat(year(curdate()),'-',elt(quarter(curdate()),1,4,7,10),'-',1)),interval 1 quarter),interval 1 hour);
查看所有事件:
查看指定事件的详情:
elect name,body,definer,execute_at,interval_value,interval_field,created,last_executed ,status from mysql.event;
其中body列就是其执行的内容。