将默认值设置为 CURRENT_TIMESTAMP 时出错

Error in setting the default value to CURRENT_TIMESTAMP

我在更改 table 时遇到问题。我需要一个数据类型为 DATETIME 的列,以将默认值作为当前 date/time,并且在更新时它也应该自动将其值更新为当前 date/time。我正在写以下 SQL

ALTER TABLE `groups` 
CHANGE COLUMN `modified` `modified` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

我收到以下错误消息。

Error Code: 1067. Invalid default value for 'modified'

我使用的 MySQL 版本是 Ubuntu 14.04.1 系统上的 5.5.49。

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

这很可能是因为您已经有另一列默认为 CURRENT_TIMESTAMP

在 5.6 之前的 MySQL 版本中,这是一个问题:

Why there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT clause?

在 MySQL 5.6.5 之前,您只能对 TIMESTAMP 类型的列使用 CURRENT_TIMESTAMP 默认值。 参见