将默认值设置为 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
默认值。
参见
我在更改 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
默认值。
参见