Tih*_*hom 54 mysql database timestamp alter
我有一个表格,其列表类型在每次更新时都timestamp默认current_timestamp并current_timestamp更新.
我想删除此列上的"on update"功能.如何编写alter语句?
我尝试了以下方法:
ALTER TABLE mytable alter column time set DEFAULT now();
Run Code Online (Sandbox Code Playgroud)
但这没用.
jon*_*ohn 83
Pete几乎是正确的但是使用了错误的语法来"改变":
ALTER TABLE mytable CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)
请注意,您必须重复列名称.此外,请确保使用反引号而不是单引号来转义列名称时间,这可以防止它被解释为mysql列类型的时间.
通过指定CURRENT_TIMESTAMP的DEFAULT,MySQL将不再自动更新列.从MySQL手册:
使用DEFAULT CURRENT_TIMESTAMP子句且没有ON UPDATE子句时,该列具有其默认值的当前时间戳,但不会自动更新.
Pet*_*ete 11
AFAIK不能使用NOW()等函数作为默认值.
尝试
ALTER TABLE `mytable` CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)
(编辑添加转义和第二次使用字段名称)