MySQL定时任务(Navicat Premium)
检查是否开启了定时策略
show variables like '%event_sche%';
如果为OFF,表示没有开启。
开启定时策略
set global event_scheduler=1;
有一个弊端是mysql重启后,又会恢复成OFF。
设置一个定时任务,每天凌晨1点执行task1存储过程。
全部内容复制到Navicat Premium稍作修改即可。
/*day_event替换成你要新建的事件名称*/
CREATE event day_event
on schedule every 1 DAY STARTS date_add(date(curdate() + 1),interval 1 hour)/*每天凌晨1点执行*/
ON COMPLETION PRESERVE DISABLE /*创建后并不开始生效*/
DO CALL task1(); /*task1替换成你新建的存储过程*/
开始定时任务,根据需要把day_event替换成自己定义的事件名称。
ALTER EVENT day_event ON COMPLETION PRESERVE ENABLE;
关闭定时任务day_event
ALTER EVENT day_event ON COMPLETION PRESERVE DISABLE;
查看定时任务
SELECT event_name,event_definition,interval_value,interval_field,status FROM information_schema.EVENTS;
删除定时任务xxxx
DROP EVENT xxxx;
扩展
每秒执行的定时任务
/*day_event替换成你要新建的事件名称*/
CREATE event day_event
ON SCHEDULE EVERY 1 SECOND
ON COMPLETION PRESERVE DISABLE /*创建后并不开始生效*/
DO CALL task1(); /*task1替换成你新建的存储过程*/
存储过程
create procedure 存储过程名字()
begin
/*sql语句*/;
end;