1、查看是否开启event与开启event。

1.1、MySQL event功能默认是关闭的,可以使用下面的语句来看event的状态,如果是OFF或者0,表示是关闭的。

show VARIABLES LIKE '%sche%';

1.2、开启event功能

SET GLOBAL event_scheduler = 1;

2、创建定时器的过程

2.1、创建event要调用的存储过程itv_epg_realtime_deletedata

2.2、开启event(要使定时起作用,MySQL的常量GLOBAL event_scheduler必须为on或者是1)

执行show variables like 'event_scheduler';查看event是否开启;

若没开启执行set global event_scheduler='on';

2.3、创建事件event_realtime_deldata(其作用:从7.21号开始,每天早晨3点执行)

drop event if exists event_realtime_deldata;

CREATE EVENT event_realtime_deldata

ON SCHEDULE EVERY 1 DAY STARTS '2016-07-21 03:00:00'

ON COMPLETION PRESERVE ENABLE

DO CALL itv_epg_realtime_deletedata()

2.4、开启事件event_realtime_deldata

alter event   event_realtime_deldata      on completion preserve enable;

2.5、关闭事件test_event

alter event  event_realtime_deldata   on completion preserve disable;

 

3.查看自己创建的event

如果要查看更加详细的信息,你需要root用户的授权,如果是你自己的数据库你可以用下面语句查看

select * from  mysql.event;

下面的我的event的查看结果

mysql创建定时器(event),查看定时器,打开定时器,设置定时器时间

 

4.event的时间设置

设置event很简单,但是麻烦的是如何设置执行的时间,网上找了一些,自己总结了一下。

先看语句,如下面这个

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

从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);

最后更新于 2020年5月17日

mysql event使用帮助说明