一尘不染

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

mysql

我有一个表,其中的列类型timestamp为默认值current_timestampcurrent_timestamp每次更新都更新为。

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

我尝试了以下方法:

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

但这没用。


阅读 321

收藏
2020-05-17

共1个答案

一尘不染

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

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

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

通过指定CURRENT_TIMESTAMP的默认值,MySQL将不再自动更新该列。从MySQL手册

通过使用DEFAULT CURRENT_TIMESTAMP子句和没有ON UPDATE子句,该列具有其默认值的当前时间戳,但不会自动更新。

2020-05-17