如何更改MySQL表列的默认值?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

我有一张表,列的类型是timestamp哪个默认值current_timestamp和更新到current_timestamp每次更新。

我想删除本专栏中的“onupdate”功能。我如何写ALTERT语句?

我尝试了以下几点:

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

但这不管用。

提问于
用户回答回答于

几乎是对的,但用错误的语法来表示“更改”:

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

注意,必须重复列名。另外,请确保正在使用Backticks而不是单引号来转义列名时间,这将防止将其解释为MySQL列类型的时间。

通过指定当前的默认值_时间戳,MySQL将不再自动更新列。从MySQL手册:

默认电流_时间戳子句和NOON UPDATE子句时,该列具有默认值的当前时间戳,但不会自动更新。

用户回答回答于

AFAIK不能使用像Now()这样的函数作为默认值。

试一试

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

扫码关注云+社区