“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