【问题标题】:Invalid default value for 'dateAdded'“添加日期”的默认值无效
【发布时间】:2012-02-18 19:36:54
【问题描述】:

我遇到了一个无法解决的愚蠢的 SQL 问题。

ALTER TABLE `新闻`
 ADD `dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT ,
 添加主键(`dateAdded`)

错误:

(#1067)Invalid default value for 'dateAdded'

有人可以帮帮我吗?

【问题讨论】:

  • 这可能是一个愚蠢的问题,但你为什么要AUTO_INCREMENT DATETIME

标签: mysql sql


【解决方案1】:

我通过将DATE 更改为DATETIME 解决了我的问题

【讨论】:

    【解决方案2】:

    我有同样的问题, 以下修复解决了我的问题。

    • 选择类型为“TIMESTAMP”

    • 不要在长度/值字段中输入任何内容。保持空白

    • 选择 CURRENT_TIMESTAMP 作为默认值。

    我正在使用 MySQL 5.5.56 版

    【讨论】:

      【解决方案3】:

      将类型从日期时间更改为时间戳,它将起作用! 我对 mysql 5.5.56-MariaDB - MariaDB Server 有同样的问题 希望它可以帮助...对不起,如果贬低

      【讨论】:

        【解决方案4】:

        还要注意,在 MySQL 5.7.x 上将 DATETIME 指定为 DATETIME(3) 或类似时,您还必须为 CURRENT_TIMESTAMP(3) 添加相同的值。如果不是,它将继续抛出“无效的默认值”。

        【讨论】:

        • 这解决了我在 5.7.x 上的问题。我的日期时间字段被定义为 datetime(6) 并使用 CURRENT_TIMESTAMP(6) 解决了问题
        • 这是非常值得注意的。
        【解决方案5】:

        mysql version 5.5 设置 datetime 默认值为 CURRENT_TIMESTAMP 会报错 您可以更新到 5.6 版本,它将日期时间默认值设置为 CURRENT_TIMESTAMP

        【讨论】:

          【解决方案6】:

          我的 LEMP 上有 mysql 版本 5.6.27,默认值 CURRENT_TIMESTAMP 可以正常工作。

          【讨论】:

            【解决方案7】:

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

            MySQL docs

            【讨论】:

            • 你确定吗?我在 5.7.x 版本中遇到上述错误
            【解决方案8】:

            CURRENT_TIMESTAMP 仅适用于 TIMESTAMP 字段。 DATETIME 字段必须保留空默认值,或者根本没有默认值 - 默认值必须是常量值,而不是表达式的结果。

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

            您可以通过在表上设置插入后触发器以在任何新记录上填充“现在”值来解决此问题。

            【讨论】:

            • 从 mysql 5.6.5 开始,您可以将 CURRENT_TIMESTAMP 与 DATETIME 字段一起使用。见dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html
            • 感谢 Frank,在尝试将导出的数据库从最新的 xampp 导入到早期版本时发现了这个问题。
            • HCD ,Frank ...发现从 MariaDb 10.x 导出到 MariaDB 5.5 的相同问题 ...谢谢
            • 这个错误也发生在 mariadb 5.5 中。升级到 mariadb 10 并解决。谢谢弗兰克
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-10-17
            • 2016-09-22
            • 2015-04-21
            • 1970-01-01
            • 2021-12-27
            • 1970-01-01
            相关资源
            最近更新 更多