mysql定时器如何设置?如此简单!

397 阅读1分钟

-- 查看定时器状态 默认是 off

show variables like '%event_sche%'

-- 设置打开

set global event_scheduler=1;

-- 创建存储过程

use testData(数据库名称);

#存储过程名称:delete_logmq

create procedure delete_logmq()

begin

delete from log_mq where createdate < (now() - interval 7 day);

delete from log_mq_rent where createdate < (now() - interval 7 day);

delete from log_mq_exchange where createdate < (now() - interval 7 day);

end

-- 删除存储过程

-- drop procedure delete_logmq;

-- 创建定时任务

#定时任务名称:delete_logmq_event

create event delete_logmq_event

-- 执行时间设置

on schedule every 1 day

-- 是表示创建后并不开始生效。

on completion preserve disable

-- 是该event(事件)的操作内容,表示调用我们刚刚创建的delete_logmq()存储过程。

do call delete_logmq();

-- 周期执行–关键字 EVERY

  • on schedule every 1 second //每秒执行1次
  • on schedule every 2 minute //每两分钟执行1次
  • on schedule every 3 day //每3天执行1次 -- 在具体某个时间执行–关键字 AT
  • on schedule at current_timestamp()+interval 5 day //5天后执行
  • on schedule at current_timestamp()+interval 10 minute //10分钟后执行
  • on schedule at '2016-10-01 21:50:00' //在2016年10月1日,晚上9点50执行

-- 在某个时间段执行–关键字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天

-- 删除任务

drop event delete_logmq_event;

-- 查看定时任务event(事件),可以查看本机所有的事件

SELECT event_name,event_definition,interval_value,interval_field,status FROM information_schema.EVENTS;

-- 开启已经创建好的event(事件)

-- 开启定时任务

alter event delete_logmq_event on completion preserve enable;

-- 关闭定时任务

alter event delete_logmq_event on completion preserve disable;