日期:2014-05-16  浏览次数:20663 次

mysql定时执行事件

每日 02:00 am 定时删除 表 t 中三天以前的记录。

首先,检查一下你的MYSQL是否打开了这项功能。
mysql> show variables like '%sc%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | OFF   |
+-----------------+-------+
1 row in set (0.00 sec)



默认下是未打开的,你可以到 my.ini (windows)/ my.cnf (linux/unix) 参数文件中定义后重启mysqld
或者直接

set global event_scheduler=on;

mysql> show variables like '%sc%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | ON    |
+-----------------+-------+
1 row in set (0.00 sec)




创建这个event

  CREATE EVENT myevent
    ON SCHEDULE EVERY 1 DAY STARTS '2009-10-24 02:00:00'
     DO
     delete from t where ptime <date_sub(curdate(),interval 3 day);