mysql - mysql无效的'dateAdded'默认值

  显示原文与译文双语对照的内容
92 3

我对SQL有一个愚蠢的问题,我无法修复。

ALTER TABLE `news` 
 ADD `dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT, 
 ADD PRIMARY KEY ( `dateAdded` )

错误:

(#1067)Invalid default value for 'dateAdded'

谁能帮我?

时间:原作者:0个回答

75 1

CURRENT_TIMESTAMP 只能在 TIMESTAMP 字段中接受。DATETIME 字段必须带有空默认值,或者者任何默认值都必须是常数值,而不是表达式的结果。

相关文档:http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html

可以以通过在 table 上设置post触发器来在任何新记录中填充"现在"值来处理这个问题。

原作者:
131 3

CURRENT_TIMESTAMP的版本特定,现在允许 DATETIME 列作为版本 5.6.

请参阅 MySQL文档

原作者:
134 5

还要注意,当指定 DATETIMEDATETIME(3) 或者类似于 5.7. x, 时,还必须将相同的值添加到 CURRENT_TIMESTAMP(3) 中。如果不是这样,它将继续抛出'无效的默认值'。

原作者:
...