在 mysql 中 24 小时后自动更新列

sim*_*dDB 3 mysql trigger stored-procedures mysql-5.5 event

我有一个带有列的表 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   
Run Code Online (Sandbox Code Playgroud)

现在我想安排一个事件或开发一个触发器(如果可能),如果任何状态为 0/2 并且其时间距当前时间超过 24 小时,则应将其更新为 1。

例如在上表中, Tue 的 state 是 0 并且 time 超过 24 hours ,所以 state 应该更新为 1 并且同样适用于 wed ,但不适用于 thu 。

我经历了很多问题,例如:

/sf/ask/1217146171/

/sf/ask/869522951/

但我还没明白,如何解决我的问题

sim*_*dDB 8

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) ;
Run Code Online (Sandbox Code Playgroud)

它将每小时运行一次