MySQL的定时任务详解

一、查看定时策略是否开启

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天

你可能感兴趣的:(MySQL)