MySQL 如何启用 explicit_defaults_for_timestamp?

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。要启用该参数,可以使用以下步骤:

  1. 使用管理员账户登录 MySQL 服务器。例如,使用 root 用户登录。
mysql -u root -p
  1. 输入管理员密码以连接到 MySQL 服务器。

  2. 在 MySQL 命令行下,执行以下命令,将 explicit_defaults_for_timestamp 设置为 ON。

SET explicit_defaults_for_timestamp = ON;
  1. 执行以下命令,查看参数设置是否生效。
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 及更高版本相同。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程