【发布时间】:2011-12-04 17:00:33
【问题描述】:
我在表中有一个 update_date 列,类型是时间戳。我使用 phpmyadmin 下拉菜单将默认值设置为 CURRENT_TIMESTAMP。但后来当我运行 sql UPDATE x SET ... 如果只有任何列发生更改,它就会更新时间戳列。我想要实现的是每次更新sql运行时是否设置当前时间。有没有办法在 mysql 中执行此操作,或者每次调用更新时我都需要明确设置 update_date?
谢谢
【问题讨论】:
我在表中有一个 update_date 列,类型是时间戳。我使用 phpmyadmin 下拉菜单将默认值设置为 CURRENT_TIMESTAMP。但后来当我运行 sql UPDATE x SET ... 如果只有任何列发生更改,它就会更新时间戳列。我想要实现的是每次更新sql运行时是否设置当前时间。有没有办法在 mysql 中执行此操作,或者每次调用更新时我都需要明确设置 update_date?
谢谢
【问题讨论】:
您需要显式更新该列。来自 MySQL 手册,TIMESTAMP properties:
当行中任何其他列的值从其当前值更改时,自动更新 TIMESTAMP 列(如果有)会自动更新为当前时间戳。 如果所有其他列都设置为其当前值,则 TIMESTAMP 列不会更改。如果 TIMESTAMP 列显式分配了 NULL 以外的值,则不会应用自动更新。
强调我的。
【讨论】: