MySQL5.1新增Event Scheduler功能【实现定时性的作业】 原先,LAMP的程序员为了完成一些周期性的数据库操作任务,总是不得不借助于操作系统的帮助,比如Windows的计划任务,或者Linux的contab。MySQL5.1终于新增了Event Scheduler功能,可以直接在后台实现一
MySQL5.1新增Event Scheduler功能【实现定时性的作业】SET GLOBAL event_scheduler = ON; SET @@global.event_scheduler = ON; SET GLOBAL event_scheduler = 1; SET @@global.event_scheduler = 1;创建Event Scheduler作为一种数据库对象,其增删改的DDL语句与其他对象非常相似,无非CREATE、ALTER、DROP等,创建的基本语法是:
CREATE EVENT (1) [IF NOT EXISTS] (2) event_name (3) ON SCHEDULE schedule (4) [ON COMPLETION [NOT] PRESERVE] (5) [ENABLE | DISABLE] (6) [COMMENT 'comment'] (7) DO sql_statement (8)(1) 创建Event嘛,这俩关键字当然不能少了;
CREATE EVENT e_totals ON SCHEDULE AT '2006-02-10 23:59:00' DO INSERT INTO messages VALUES (null, 'admin', '过年了!', '祝大家鼠年发大财!!!', '127.0.0.1',NOW());下面是一个周期性计划任务的例子,该任务在2008-02-06 23:59:00开始的一年内,每隔1小时就删除掉messages表的早先的10条记录:
CREATE EVENT e_hourly ON SCHEDULE EVERY 1 HOUR STARTS '2007-02-10 23:59:00' ENDS '2008-02-10 23:59:00' DO DELETE FROM messages limit 10;
计划任务属于数据库服务器端的对象,创建好后,只要开启了event_scheduler,就可以自动触发执行了,不用在前台进行任何干预。当然一定要记住,只有MySQL5.1以上版本才支持该对象。