【问题标题】:MYSQL timestamp column auto update even if there is no changes?即使没有更改,MYSQL 时间戳列也会自动更新?
【发布时间】:2011-12-04 17:00:33
【问题描述】:

我在表中有一个 update_date 列,类型是时间戳。我使用 phpmyadmin 下拉菜单将默认值设置为 CURRENT_TIMESTAMP。但后来当我运行 sql UPDATE x SET ... 如果只有任何列发生更改,它就会更新时间戳列。我想要实现的是每次更新sql运行时是否设置当前时间。有没有办法在 mysql 中执行此操作,或者每次调用更新时我都需要明确设置 update_date?

谢谢

【问题讨论】:

    标签: mysql timestamp


    【解决方案1】:

    您需要显式更新该列。来自 MySQL 手册,TIMESTAMP properties

    当行中任何其他列的值从其当前值更改时,自动更新 TIMESTAMP 列(如果有)会自动更新为当前时间戳。 如果所有其他列都设置为其当前值,则 TIMESTAMP 列不会更改。如果 TIMESTAMP 列显式分配了 NULL 以外的值,则不会应用自动更新。

    强调我的。

    【讨论】:

    • 我的行中只有一个时间戳列。所以你说我应该将默认值更改为 null 然后在每次运行 sql 时显式更新它,或者我可以将默认类型保留为 CURRENT_TIMESTAMP?
    • 另一件事是,当我运行此代码时,没有任何内容从 mysql_query 更新“UPDATE x SET update_date = NOW()”?是什么原因?
    • 有没有办法克服这个问题? [即使实际值没有更新也要更新时间戳]
    猜你喜欢
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多