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

 

每天定时清空test表

 

CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
DO TRUNCATE TABLE test.aaa;



参考资料:mysql定时执行任务   http://www.studyofnet.com/news/1185.html


你可能感兴趣的:(mysql)