【发布时间】:2012-03-01 14:08:21
【问题描述】:
我有一个列,比如 ts_activity,在 MYSQL 中具有数据类型时间戳,默认值为当前时间戳。我想在更新时将当前时间戳添加到此列值。
我无法通过更改查询来执行此操作。在创建新表及其列时,我可以添加它,但无法通过添加更新应用当前时间戳来修改现有列。
谁能告诉我确切的查询来处理这个问题?我们可以在创建表后更改它吗?
【问题讨论】:
标签: mysql
我有一个列,比如 ts_activity,在 MYSQL 中具有数据类型时间戳,默认值为当前时间戳。我想在更新时将当前时间戳添加到此列值。
我无法通过更改查询来执行此操作。在创建新表及其列时,我可以添加它,但无法通过添加更新应用当前时间戳来修改现有列。
谁能告诉我确切的查询来处理这个问题?我们可以在创建表后更改它吗?
【问题讨论】:
标签: mysql
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;
【讨论】:
CURRENT_TIMESTAMP的值?
试试这个查询 -
ALTER TABLE table_name
CHANGE COLUMN column_name column_name TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
注意,表格中只有一个字段可以带有“ON UPDATE CURRENT_TIMESTAMP”选项。
【讨论】: