【问题标题】:Updating different rows based on time?根据时间更新不同的行?
【发布时间】:2011-07-11 05:24:37
【问题描述】:

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

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

ColumnA 开始时间 结束时间 123 02:05:01 02:06:01 456 02:06:01 02:07:01

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

【问题讨论】:

    标签: mysql events postgresql time


    【解决方案1】:

    如果这就是您的意思,可以将东西包装在一个箱子中:

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

    【讨论】:

    • 谢谢你的建议,但这不是我的意思:)
    【解决方案2】:

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

    这是一个链接解决方案Does MySQL have time-based triggers?

    【讨论】:

    • 谢谢你的这个。有人在 Postgresql 中有类似的工具吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 2017-08-18
    相关资源
    最近更新 更多