一、查看事件调度器是否开启
SHOW VARIABLES LIKE 'event_scheduler';
如果显示OFF,则输入以下语句开启
修改配置文件,让mysql服务启动的时候开启时间,只需要在my.ini配置文件的[mysqld]部分加上 event_scheduler=ON 即可
二、创建事件
1、语法
CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT 'comment']
DO sql_statement;
schedule:
AT TIMESTAMP [+ INTERVAL INTERVAL]
| EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP]
INTERVAL:
quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
2、参数说明
(1)、DEFINER: 定义事件执行的时候检查权限的用户。
(2)、ON SCHEDULE schedule: 定义执行的时间和时间间隔。
(3)、ON COMPLETION [NOT] PRESERVE: 定义事件是一次执行还是永久执行,默认为一次执行,即NOT PRESERVE。
(4)、ENABLE | DISABLE | DISABLE ON SLAVE: 定义事件创建以后是开启还是关闭,以及在从上关闭。如果是从服务器自动同步主上的创建事件的语句的话,会自动加上DISABLE ON SLAVE。
(5)、COMMENT 'comment': 定义事件的注释。
3、创建实例
创建如下表
CREATE TABLE aaa (timeline TIMESTAMP);
5天后清空test表
CREATE EVENT e_test
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY
DO TRUNCATE TABLE test.aaa;
参考资料:mysql 自动执行事件 http://www.studyofnet.com/news/1185.html