无法将当前时间戳设置为默认时间戳
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 了解更多信息。
我正在尝试将 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 了解更多信息。