mysql - 如何更改 mysql 表列的默认值?

我有一个表,其中有一列类型为 timestamp,默认为 current_timestamp 并在每次更新时更新为 current_timestamp

我想删除此列的“更新时”功能。如何编写 alter 语句?

我尝试了以下方法:

ALTER TABLE mytable alter column time  set DEFAULT now();

但这不起作用。

最佳答案

Pete 几乎是正确的,但“更改”使用了错误的语法:

ALTER TABLE mytable CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

请注意,您必须重复列名。此外,请确保您使用反引号而不是单引号来转义列名时间,这样可以防止将其解释为 mysql 列类型的时间。

通过指定 CURRENT_TIMESTAMP 的 DEFAULT,MySQL 将不再自动更新该列。来自 MySQL Manual :

With a DEFAULT CURRENT_TIMESTAMP clause and no ON UPDATE clause, the column has the current timestamp for its default value but is not automatically updated.

https://stackoverflow.com/questions/1770203/

相关文章:

mysql - MySQL中的case语句

mysql - "Data too long for column"- 为什么?

mysql - 等于 (=) 和具有一个文字值的 IN 之间的性能差异

mysql - 如何使用配置和库文件完全删除 MySQL?

c# - MySQL - 实体 : The value for column 'IsPrimaryK

mysql - SQL唯一varchar区分大小写问题

mysql - 在 MySQL 中循环遍历结果集

mysql - 什么是 MySQL "Key Efficiency"

mysql - 在 MySQL 中生成整数序列

mysql - 数据库在 QuerySet.dates() 中返回了无效值