无法将当前时间戳设置为默认时间戳

Unable to set current timestamp as default

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

#1067 - Invalid default value for 'registered_at'

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

您需要使用 MySQL 服务器 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 了解更多信息。