我的列中说ts_activity是MYSQL中的数据类型时间戳,默认值是当前时间戳。我想在此列值上添加更新应用当前时间戳。
我无法通过alter query来执行此操作。虽然创建新表及其列我可以添加,但无法通过添加更新应用当前时间戳来修改现有列。
有人可以告诉我确切的查询来处理这个问题。我们可以在创建表格后对其进行更改。
由于
答案 0 :(得分:33)
Devart的建议可行,但如果我不重命名该列,我更愿意使用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;
答案 1 :(得分:9)
尝试此查询 -
ALTER TABLE table_name
CHANGE COLUMN column_name column_name TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
注意,在表中只有一个字段可以使用'ON UPDATE CURRENT_TIMESTAMP'选项。