MySQL如何启用 explicit_defaults_for_timestamp?

MySQL如何启用 explicit_defaults_for_timestamp?

MySQL 是一个广泛使用的关系型数据库管理系统。在 MySQL 中,我们可以通过开启 explicit_defaults_for_timestamp 变量来设定 timestamp 类型列在插入或更新时的默认值。下面介绍如何启用 explicit_defaults_for_timestamp。

阅读更多:MySQL 教程

步骤一:修改 my.cnf 文件

首先需要修改 MySQL 配置文件 my.cnf,打开该文件并找到 [mysqld] 配置节,添加以下内容:

[mysqld]
explicit_defaults_for_timestamp=ON
Ini

修改完成后保存文件并重启 MySQL 服务。如果 MySQL 是通过二进制文件启动的,则需要使用以下命令来启动:

sudo mysqld --explicit_defaults_for_timestamp=ON
Mysql

步骤二:验证是否启用了 explicit_defaults_for_timestamp

我们可以通过以下命令来查看 MySQL 是否启用了 explicit_defaults_for_timestamp 变量:

SHOW VARIABLES LIKE 'explicit_defaults_for_timestamp';
SQL

如果输出结果为以下内容,则说明已经成功启用了该变量:

+--------------------------------+-------+
| Variable_name                  | Value |
+--------------------------------+-------+
| explicit_defaults_for_timestamp | ON   |
+--------------------------------+-------+
SQL

示例

我们可以使用以下 SQL 语句来创建一个包含 timestamp 类型列的表:

CREATE TABLE test (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
SQL

在上述语句中,我们使用了 DEFAULT CURRENT_TIMESTAMP 和 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 语句将 created_at 和 updated_at 列设定为 timestamp 类型,并设置了默认值。

我们可以将数据插入到 test 表中并查看插入的结果:

INSERT INTO test (name) VALUES ('Alice'), ('Bob'), ('Charlie');

SELECT * FROM test;
SQL

输出结果如下:

+----+--------+---------------------+---------------------+
| id | name   | created_at          | updated_at          |
+----+--------+---------------------+---------------------+
|  1 | Alice  | 2021-08-25 06:24:10 | 2021-08-25 06:24:10 |
|  2 | Bob    | 2021-08-25 06:24:10 | 2021-08-25 06:24:10 |
|  3 | Charlie| 2021-08-25 06:24:10 | 2021-08-25 06:24:10 |
+----+--------+---------------------+---------------------+
Mysql

我们可以看到在插入数据时,created_at 和 updated_at 列的默认值均为当前时间。

总结

通过修改 my.cnf 文件,并启用 explicit_defaults_for_timestamp 变量,我们可以在 MySQL 中设定 timestamp 类型列的默认值。这样会使得数据插入和更新操作更加方便。注意,实际运行环境中,需要根据具体需求来决定是否启用该选项。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册