【问题标题】:How do I prevent timestamp columns from updating when a MySQL row is updated?更新 MySQL 行时,如何防止时间戳列更新?
【发布时间】:2016-12-07 09:33:47
【问题描述】:

我有一个用户表,其中有一列表示他们加入的日期。它是一个时间戳数据类型。我希望该列的值始终是用户加入时的当前时间,所以默认值是当前时间。如果更新了用户的个人资料,则用户的加入日期将更新为当前时间。换句话说,假设用户在 8 月 2 日加入,然后在 9 月 17 日更新他们的个人资料。加入日期的新值将是 9 月 17 日。即使我没有告诉我的 sql 语句更新该行,也会发生这种情况。

如何才能使时间戳列仅在创建新行时受到影响?

【问题讨论】:

  • 检查show create table table_name,它会告诉你列的定义,它将是ON UPDATE CURRENT_TIMESTAMP,删除该部分就完成了。
  • stackoverflow.com/q/18962757/4323504 的可能重复阅读第一个答案

标签: mysql


【解决方案1】:

听起来您需要配置默认约束,以便它仅在插入时填充列:

DEFAULT CURRENT_TIMESTAMP
ALTER TABLE table CHANGE datetime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

将其更改为 only 意味着任何修订都不会触发时间戳值的更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 2021-02-25
    • 2018-12-26
    • 2014-08-11
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    相关资源
    最近更新 更多