2014-11-14 3 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 

나는이 이벤트가 활성화 얻을 어떻게해야합니까? 귀하의 이벤트가 아마 발사하지만, 아래 WHERE 상태의 원인이 UPDATE 목적으로하고 있지 않습니다

답변

1

은하지 감각을 (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

감사합니다. Rahul. 이제 작동합니다. 나는에 이벤트를 변경하여 테스트 : 업데이트 주문을 설정 ORDER_STATUS 마십시오 CURRENT_TIMESTAMP AT 일정에 updorder 이벤트를 만들 = 곳 order_dt + INTERVAL 2 DAY JavascriptL