1 首先确保 mysql 已开启 定时任务 (好像mysql在5.1 后才支持event(定时任务)):
查看计划事件是否开启:
mysql> show variables like '%scheduler%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | event_scheduler | OFF |
若返回Value值是ON,则表示已经开启,若返回时OFF值表示没有开启。此时需要到mysql配置文件my.ini新增一项,在mysqld后面添加event_scheduler = on(或是event_scheduler = 1),保存后重启mysql服务器即可。
截图见下:
2)我要创建一个定时任务 每隔12小时,关闭未付款的订单
CREATE EVENT updateOrderStatus_event
ON SCHEDULE EVERY 12 HOUR
STARTS '2014-09-29 16:32:54'
ON COMPLETION PRESERVE ENABLE
DO UPDATE orders t SET t.STATUS=4 WHERE TIMEDIFF(NOW(),t.create_time)>'00:01:00' AND t.STATUS=0
注:
ON COMPLETION PRESERVE ENABLE的解释: 这里可以选择 preserve 和not preserve(执行一次任务后就删除该event ) 所以这里要设置为 preserve
event 状态 : enable disable