将默认值设置为CURRENT_TIMESTAMP时出错

时间:2016-11-23 10:10:39

标签: mysql default-value alter-table

我在改变一张桌子时遇到了问题。我需要一个数据类型为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。

请告诉我如何解决这个问题。

2 个答案:

答案 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