MySQL 8.1.0正式发布!

2023年 7月 28日 85.3k 0

五年前,MySQL 8.0 就发布了第一个 GA 版本,此后一直在这个版本进行更新,而没有升级大版本。最近 MySQL 官方终于发布了 MySQL 8.1.0 和 MySQL 8.0.34,分别代表了创新版和长期支持版。

MySQL 8.1.0正式发布!

新版本中与 SQL 相关的改进包括保存执行计划输出和使用系统函数作为字符字段的默认值。

MySQL 8.1.0 版本支持将 EXPLAIN FORMAT=JSON 命令的输出结果保存为一个用户变量,语法如下:

EXPLAIN FORMAT=JSON INTO var_name 
explainable_stmt

变量的值是一个 JSON 文档,可以进一步使用 JSON 函数 (例如 JSON_EXTRACT())进行处理。

其中,INTO 子句只支持 FORMAT=JSON 选项,系统变量 explain_format 设置的 JSON 格式无效。如果 explainable_stmt 无法执行,用户变量的值不会被更新。

INTO 子句不支持 EXPLAIN ANALYZE 和 EXPLAIN FOR CONNECTION 语句。

关于 EXPLAIN 命令的详细介绍,可以参考官方文档。

https://dev.mysql.com/doc/refman/8.1/en/explain.html#explain-execution-plan

MySQL 8.1.0 和 MySQL 8.0.34 支持使用系统函数 CURRENT_USER()、SESSION_USER()、USER() 以及 SYSTEM_USER() 作为 VARCHAR 和 TEXT 字段的默认值。例如:

mysql> SELECT CURRENT_USER();
+-------------------+
| CURRENT_USER()    |
+-------------------+
|  sakila@localhost |
+-------------------+
1 row in set (0.00 sec)

mysql> CREATE TABLE t (
     >  c1 VARCHAR(288) DEFAULT (USER()),
     >  c2 VARCHAR(288) DEFAULT (CURRENT_USER()),
     >  c3 VARCHAR(288) DEFAULT (SESSION_USER()), 
     >  c4 VARCHAR(288) DEFAULT (SYSTEM_USER())
     > );
Query OK, 0 rows affected (0.04 sec)

mysql> INSERT INTO t VALUES ROW();
Query OK, 1 row affected (0.01 sec)

mysql> TABLE t;
+-------------------+-------------------+-------------------+-------------------+
| c1                | c2                | c3                | c4                |
+-------------------+-------------------+-------------------+-------------------+
|  sakila@localhost |  sakila@localhost |  sakila@localhost |  sakila@localhost |
+-------------------+-------------------+-------------------+-------------------+
1 row in set (0.00 sec)

如果我们使用 SHOW CREATE TABLE 和 SHOW COLUMNS 命令查看表结构时,可以看到定义中的函数。另外,也可以通过系统表 INFORMATION_SCHEMA.COLUMNS 的 COLUMN_DEFAULT 字段查看默认值。

如果想要确保可以存储最大可能的数据长度,定义的字段长度至少为 288 个字符(用户名占用 255、主机名占用 32、加上一个 @ 符号)。定义 CHAR 类型的字段时,不推荐使用以上系统函数作为默认值,因为可能会导致错误或者数据丢失。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论