mysql 定时任务调度

时间:2023-01-06 07:59:06

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服务器即可。

截图见下:

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