Mysql

在 mysql 中 24 小時後自動更新列

  • May 23, 2018

我有一個表 T1 列:

Name      State             time
mon         1          2014-01-09 11:23:00
tue         0          2014-01-07 14:40:00
wed         2          2014-01-08 09:23:00 
thu         0          2014-01-09 12:23:00   

現在我想安排一個事件或開發一個觸發器(如果可能的話),如果任何狀態是 0/2 並且它的時間比目前時間超過 24 小時,那麼它應該更新為 1。

例如在上表中,Tue 的狀態為 0,時間超過 24 小時,因此 state 應更新為 1,同樣適用於 wed,但不適用於 thu。

我經歷了很多問題,例如:

https://stackoverflow.com/questions/17387802/how-to-auto-update-mysql-after-timestamp-field-expierd

https://stackoverflow.com/questions/12421756/how-to-update-table-after-a-certain-time-interval

但我還不明白,如何解決我的問題

CREATE EVENT reset
   ON SCHEDULE
     EVERY 1 HOUR
       DO
update T1 
set state=1 
where time < date_sub(now(),interval 24 hour) 
 and (state=0 or state=2) ;

它將每小時執行一次

引用自:https://dba.stackexchange.com/questions/56424