【问题标题】:How to add "ON update current timestamp" to existing table column如何将“ON update current timestamp”添加到现有表列
【发布时间】:2012-03-01 14:08:21
【问题描述】:

我有一个列,比如 ts_activity,在 MYSQL 中具有数据类型时间戳,默认值为当前时间戳。我想在更新时将当前时间戳添加到此列值。

我无法通过更改查询来执行此操作。在创建新表及其列时,我可以添加它,但无法通过添加更新应用当前时间戳来修改现有列。

谁能告诉我确切的查询来处理这个问题?我们可以在创建表后更改它吗?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    Devart's suggestion 可以,但如果我不重命名该列,我更喜欢使用MODIFY COLUMN 而不是CHANGE COLUMN

    我还假设您的 ts_activity 列不可为空,因为您有一个默认值,所以我将其设置为 NOT NULL,但这取决于您。

    这是我要使用的语句:

    ALTER TABLE your_table
      MODIFY COLUMN ts_activity TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
    

    【讨论】:

    • 同意 NULL/NOT NULL。应该像以前一样指定它。
    • 在特定时区更新时如何存储CURRENT_TIMESTAMP的值?
    【解决方案2】:

    试试这个查询 -

    ALTER TABLE table_name
      CHANGE COLUMN column_name column_name TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
    

    注意,表格中只有一个字段可以带有“ON UPDATE CURRENT_TIMESTAMP”选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 2016-11-13
      • 2019-12-16
      相关资源
      最近更新 更多