2014-11-14 32 views
0

我需要在MYSQL中创建一个自动事件,以在订单日期比当天日期多2天时将订单状态更新为“已完成”。我的活动需要每天运行一次。事件没有正常运行

这里是我创造:

CREATE EVENT updorder 
    ON SCHEDULE EVERY 1 DAY 
     DO 
     update orders 
     set order_status = "Fulfilled" 
     where order_dt + INTERVAL 2 DAY < DATETIME 

我也这样做:

SET GLOBAL event_scheduler = ON; 

SHOW PROCESSLIST 
309 event_scheduler localhost NULL Daemon 125 Waiting for next activation NULL 

我应该怎么做才能获取此事件激活?

回答

1

你的事件可能是射击,但没有做打算UPDATE导致以下WHERE条件不有道理(DATETIME是一种数据类型)

where order_dt + INTERVAL 2 DAY < DATETIME 

我想你的意思是检查less than current date time

where order_dt + INTERVAL 2 DAY < NOW() 

(OR)

WHERE DATE_ADD(order_dt, INTERVAL 2 DAY) < NOW() 
+0

谢谢拉胡尔。它现在有效。我通过改变事件来测试它:CREATE EVENT updorder ON SCHEDULE AT CURRENT_TIMESTAMP DO 更新订单 组ORDER_STATUS = “达到” 其中order_dt + INTERVAL 2 DAY JavascriptL 2014-11-14 21:24:44

相关问题