“dateAdded”的默认值无效

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

 改变表`新闻` 
  ADD`dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT,
 添加主键(`dateAdded`)

错误:

(#1067)Invalid default value for 'dateAdded' 

有人可以帮我吗?

CURRENT_TIMESTAMP仅在TIMESTAMP字段上可接受。 DATETIME字段必须保留为空默认值,或根本没有默认值 – 默认值必须是常数值,而不是expression式的结果。

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

您可以通过在表上设置后插入触发器来在任何新logging中填写“now”值来解决此问题。

CURRENT_TIMESTAMP是版本特定的,现在允许从5.6版本开始使用DATETIME列。

看到MySQL文档 。

DATETIME(3)或类似的MySQL 5.7.x上指定DATETIME时,还要注意CURRENT_TIMESTAMP(3)值。 如果没有,它将继续抛出“ 无效的默认值 ”。

我有我的LEMP和CURRENT_TIMESTAMP作为默认值的MySQL版本5.6.27正常工作。

mysql版本5.5设置datetime默认值为CURRENT_TIMESTAMP会报错误,你可以更新到5.6版本,它把datetime默认值设置为CURRENT_TIMESTAMP

将types从date时间更改为时间戳,它将起作用! 我有同样的问题为MySQL 5.5.56-MariaDB – MariaDB服务器希望它可以帮助…对不起,如果depricated