mysql 自动执行事件



一、查看事件调度器是否开启


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


你可能感兴趣的:(数据库)