MySQL 如何启用 explicit_defaults_for_timestamp?
MySQL 是一个常用的关系型数据库管理系统,而 explicit_defaults_for_timestamp 是其中一个重要的参数。本文将详细介绍如何启用 MySQL 中的 explicit_defaults_for_timestamp 参数。
阅读更多:MySQL 教程
explicit_defaults_for_timestamp 是什么?
explicit_defaults_for_timestamp 是 MySQL 中的一个配置参数。它规定了当没有指定特定的 ON UPDATE 或 DEFAULT 子句时 TIMESTAMP 列的ON UPDATE动作以及默认日期和时间戳值赋值。 explicit_defaults_for_timestamp 为 OFF 时,timestamp拥有mysql版本之前的默认行为,字段值为NONE,默认为 CURRENT_TIMESTAMP。该值由数据库的数据库服务器系统所在的时区在插入行时设置。
如何设置 explicit_defaults_for_timestamp 参数?
MySQL 的 explicit_defaults_for_timestamp 参数默认情况下为 OFF。要启用该参数,可以使用以下步骤:
- 使用管理员账户登录 MySQL 服务器。例如,使用 root 用户登录。
mysql -u root -p
- 输入管理员密码以连接到 MySQL 服务器。
-
在 MySQL 命令行下,执行以下命令,将 explicit_defaults_for_timestamp 设置为 ON。
SET explicit_defaults_for_timestamp = ON;
- 执行以下命令,查看参数设置是否生效。
SHOW VARIABLES LIKE 'explicit_defaults_for_timestamp';
如果设置成功,MySQL 将返回如下结果:
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| explicit_defaults_for_timestamp | ON |
+---------------------------------+-------+
注意事项
- explicit_defaults_for_timestamp 参数仅适用于 MySQL 5.6 或更高版本。
- 在 MySQL 5.6.6 及更高版本中,explicit_defaults_for_timestamp 设置为 ON 后,TIMESTAMP 列的默认日期更改为 1970 年 1 月 1 日,而不是 0000-00-00 或 NULL。
- 在 MySQL 8.0 中,explicit_defaults_for_timestamp 参数的行为与 MySQL 5.6.6 及更高版本相同。
总结
启用 explicit_defaults_for_timestamp 参数是 MySQL 中的一个重要设置。只需要使用 MySQL 命令行执行 SET explicit_defaults_for_timestamp = ON; 命令即可。注意,该命令仅适用于 MySQL 5.6 及更高版本。在 MySQL 5.6.6 及更高版本中,TIMESTAMP 列的默认日期更改为 1970 年 1 月 1 日,而不是之前的默认行为 NONE 或 CURRENT_TIMESTAMP。在 MySQL 8.0 中,explicit_defaults_for_timestamp 参数的行为与 MySQL 5.6.6 及更高版本相同。