【问题标题】:Unable to set current timestamp as default无法将当前时间戳设置为默认值
【发布时间】:2017-07-11 01:23:53
【问题描述】:

我正在尝试将 CURRENT_TIMESTAMP 设置为我在 phpmyadmin 中输入的 DATE 的默认值。我首先尝试设置DATE 类型,然后设置DATETIME 类型,但我收到此错误:

#1067 - Invalid default value for 'registered_at'

那么,如何将当前时间戳设置为默认值?

【问题讨论】:

  • 请出示相关代码。
  • 如果您不发布代码,我们将无法帮助您。我们不知道什么可能是拼写错误或其他什么。我们无法用看不见的代码解决问题。您的列的定义也很重要。见How to Ask
  • @KenWhite 帖子确实说“我在 phpmyadmin 中的 DATE 类型”。
  • @ceejayoz:我已经记不清我在这里看到了多少个问题,说 我正在尝试对我的日期列做一些事情 只是为了找出它被定义为 VARCHAR。
  • @Nemus 使用 phpmyadmin 中的预览 sql 按钮查看将要运行的 sql 语句...

标签: mysql timestamp default


【解决方案1】:

您需要使用 MySQL Server 5.6.5 或更高版本来执行此操作。您还需要使用 TIMESTAMP 或 DATETIME 数据类型。它不适用于 DATE。

手册中的示例同时显示了 TIMESTAMP 和 DATETIME:

CREATE TABLE t1 (
  ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  dt DATETIME DEFAULT CURRENT_TIMESTAMP
);

如果您有早期版本的 MySQL 服务器,则只需使用 TIMESTAMP 数据类型。它不适用于 DATETIME。

阅读https://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html了解更多信息。

【讨论】:

    猜你喜欢
    • 2013-08-06
    • 2017-07-19
    • 2015-10-12
    • 2015-03-02
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    相关资源
    最近更新 更多