根据时间更新不同的行?

时间:2011-07-11 05:24:37

标签: mysql events postgresql time

在MySQL或PostGre中根据时间更新表的最佳方法是什么?

例如,我有一个包含以下记录的数据库。

ColumnA  StartTime  EndTime
123      02:05:01   02:06:01   
456      02:06:01   02:07:01

是否可以根据EndTime列更新两列的值,可能是时间事件?我尝试使用cronjobs,但我认为它不适合特定于时间的事件(秒),特别是如果数据库有大量的行?

2 个答案:

答案 0 :(得分:1)

如果这就是你的意思,可以将事情包装在案例中:

update foo
set ColumnA = case
    when EndTime < now() then 321
    else 654
    end,
    StartTime = case
    ...
    end
where ...

答案 1 :(得分:0)

看起来你可以使用Mysql Events,如果你使用的是5.1

以下是关联解决方案Does MySQL have time-based triggers?