`

MySQL 计划任务

阅读更多

官方手册:http://dev.mysql.com/tech-resources/articles/event-feature.html

 

MySQL 5.1以上版本支持event,先查看数据库是否开启计划认为:

mysql> show variables like '%event%';
+---------------------+-------+
| Variable_name   | Value |
+---------------------+-------+
| event_scheduler | OFF  |
+---------------------+-------+

 

使用下列的任意一句开启计划任务:
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;   -- 0代表关闭
SET @@global.event_scheduler = 1;

 

创建event语法:
CREATE EVENT [ IF NOT EXISTS ] event_name
ON SCHEDULE AT|EVERY
[ ON COMPLETION [ NOT ] PRESERVE ]
[ ENABLED | DISABLED ]         --状态,默认是有效状态。
[ COMMENT 'comment' ]          --注释说明
DO sql_statement;

 

主要功能说明:
AT 表示指定一个时间只执行一次。
EVERY 周期性计划,可指定计划开始时间 STARTS 和结束时间 ENDS,执行具体时间周期可以为:YEAR, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND。
COMPLETION 计划任务完毕后,该计划任务对象是否还在数据库中保留。默认不保留。

 

实例:
每5分钟删除sms表上面ybmid为空白且createdate距现时间超过5分钟的数据。


USE test;
CREATE EVENT event_delnull
ON SCHEDULE
EVERY 5 MINUTE STARTS '2010-07-10 00:00:00' ENDS '2011-02-10 00:00:00'
DO
DELETE FROM sms WHERE ybmid='' AND TIMEDIFF(SYSDATE(),createdate)>'00:05:00';

 

查看任务计划:
SELECT * FROM mysql.event\G

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics