一、查看定时策略是否开启
show variables like '%event_sche%';
开启定时策略:
set global event_scheduler=1;
二、创建存储过程
use test;
delimiter //
create procedure test_procedure ()
begin
insert into user(name,create_date) values('hello',now());
end//
delimiter ;
use test:数据库名
delimiter // :这个是将mysql中以;(分号)结尾的规定修改为以//(双斜杠)为语句结束符
三、创建定时任务
create event run_event
on schedule every 1 minute
on completion preserve disable
do call test_procedure ();
1、create event day_event:是创建名为run_event的事件
2、创建周期定时的规则,意思是每分钟执行一次
3、on completion preserve disable是表示创建后并不开始生效。
4、do call test_procedure ()是该event(事件)的操作内容
四、定时任务操作
1、查看定期任务
SELECT event_name,event_definition,interval_value,interval_field,status
FROM information_schema.EVENTS;
2、开启或关闭定时任务
alter event run_event on completion preserve enable;//开启定时任务
alter event run_event on completion preserve disable;//关闭定时任务
五、定时规则
1、周期执行–关键字 EVERY
单位有:second,minute,hour,day,week(周),quarter(季度),month,year
on schedule every 1 week //每周执行1次
2、在具体某个时间执行–关键字 AT
on schedule at current_timestamp()+interval 5 day //5天后执行
on schedule at '2019-01-01 00:00:00' //在2019年1月1日,0点整执行
3、在某个时间段执行–关键字STARTS ENDS
on schedule every 1 day starts current_timestamp()+interval 5 day ends current_timestamp()+interval 1 month //5天后开始每天都执行执行到下个月底
on schedule every 1 day ends current_timestamp()+interval 5 day //从现在起每天执行,执行5天