【发布时间】:2016-11-02 15:34:23
【问题描述】:
我已经解决了许多与我的问题相似的问题,但似乎都与尝试使用带有 DATETIME 字段的默认 CURRENT_TIMESTAMP 有关。
我在使用带有 TIMESTAMP 字段的 CURRENT_TIMESTAMP 默认值时遇到问题,据我所知应该支持该字段。
我正在使用 MySQL 5.6.3 社区版。这是我的表创建代码的部分摘录:
CREATE TABLE IF NOT EXISTS `my_table` (
`master_id` INT(10) NOT NULL AUTO_INCREMENT ,
`template_id` INT(10) NULL,
`def_id` INT(10) NOT NULL,
'override` TINYINT(1) NULL,
`last_update` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ...
这个错误出来了:
“last_update”的默认值无效
有什么想法吗?
【问题讨论】:
-
将文件定义为
last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP,然后重试。我在 5.7 上对此进行了测试,所以我不知道它是否适用于 5.6(因此有评论)。 -
为了记录,这不是反引号 - 这是一个复制/粘贴问题。我在实际语句中使用了正确的引号。
-
在没有 NOT NULL 的情况下如上所述定义字段没有帮助。
-
我在 5.5 和 5.7 上测试了我建议的解决方案(此时无法访问 5.6),它给出了正确的结果。我知道这不是反勾号问题,我只是没有将它们包含在评论中。
标签: mysql