我在改变一张桌子时遇到了问题。我需要一个数据类型为DATETIME的列将默认值作为当前日期/时间,并且在更新时它还应自动将其值更新为当前日期/时间。我正在编写以下SQL
ALTER TABLE `groups`
CHANGE COLUMN `modified` `modified` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
我收到以下错误消息。
Error Code: 1067. Invalid default value for 'modified'
在Ubuntu 14.04.1系统上使用的MySQL版本是5.5.49。
请告诉我如何解决这个问题。
答案 0 :(得分:0)
这很可能是因为您已经有另一列CURRENT_TIMESTAMP
作为默认列。
在5.6之前的MySQL版本中,这是一个问题:
Why there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT clause?
答案 1 :(得分:0)
在MySQL 5.6.5之前,您只能对CURRENT_TIMESTAMP
类型的列使用TIMESTAMP
默认值。
见https://stackoverflow.com/a/9005872/1293303