MySQL 9.2.0 有哪些功能新增、弃用和删除?
本文来源:https://dev.mysql.com/doc/refman/9.2/en/mysql-nutshell.html,
由「爱可生开源社区」翻译:https://mp.weixin.qq.com/s/gNRaHz-1Eq_PKsg792uwjg
2025 年 1 月 21 日,MySQL 9.2.0 版本发布!
根据 MySQL 版本发布计划,MySQL 9.2.0 是一个创新版,那么我们来看一下有哪些功能新增,弃用和删除。
1一、新增或更改的功能
CREATE_SPATIAL_REFERENCE_SYSTEM 权限
MySQL 9.2.0 引入了 CREATE_SPATIAL_REFERENCE_SYSTEM 权限,该权限允许用户执行任何以下声明:
-
CREATE SPATIAL REFERENCE SYSTEM
-
CREATE OR REPLACE SPATIAL REFERENCE SYSTEM
-
DROP SPATIAL REFERENCE SYSTEM
目前,若没有此权限(或 SUPER 权限)的情况下执行以上列出的任何语句,都会引发错误:
Error number: 6427; Symbol: ER_CMD_NEED_SUPER_OR_CREATE_SPATIAL_REFERENCE_SYSTEM; SQLSTATE: HY000 Message: You need the SUPER or CREATE_SPATIAL_REFERENCE_SYSTEM privilege for command '%s'
更多信息:https://dev.mysql.com/doc/refman/9.2/en/privileges-provided.html
JavaScript 库
多语言引擎组件(MLE)现在支持可重用的 JavaScript 库,其中包含可以从其他 JavaScript 存储程序调用的函数。此类函数必须使用导出 keyword 标记为可导入。
函数库可以使用 MySQL 9.2.0 中添加的 CREATE LIBRARY
和 DROP LIBRARY SQL
语句进行管理;它们可以包含在其他存储的 JavaScript 程序中,并在同一版本中添加 USING
子句到 CREATE FUNCTION
和 CREATE PROCEDURE
;USING
支持一个或多个库名称的列表。
CREATE LIBRARY
语句在给定数据库中创建一个新的 JavaScript 库,给定一个或多个 JavaScript 函数的代码。JavaScript 代码是在创建时解析并检查有效性;如果代码包含任何错误,则拒绝 CREATE LIBRARY
。DROP LIBRARY
删除给定的 JavaScript 库。
更多信息:https://dev.mysql.com/doc/refman/9.2/en/srjs-libraries.html
用于 JS 的 SQL 存储例程和会话变量 API
MySQL 9.2.0 及以上版本的 MLE 组件支持访问从 JavaScript 例程到用户定义的函数,过程和变量。
现在可以使用 Schema 方法访问 MySQL 存储的函数和过程 getFunction()
和 getProcedure()
的这些函数中的每一个都返回一个可以使用参数 Function 对象。
此外,现在可以访问 MySQL 用户变量直接作为 JavaScript 全局变量的属性 Session 对象。JavaScript 访问 Session Variables,了解更多信息 信息和示例。
MySQL 9.2.0 版本还增加了对直接访问多个 MySQL 内置函数的支持,如下所示:
-
rand()
:等同于 MySQLRAND()
-
sleep()
:等同于 MySQLSLEEP()
-
uuid()
:等同于 MySQLUUID()
-
isUUID()
:等同于 MySQLIS_UUID()
所有这些函数都可以作为全局 MySQL 对象的方法调用。
更多信息: https://dev.mysql.com/doc/refman/9.2/en/srjsapi-mysql.html
JavaScript 事务 API
从 MySQL 9.2.0 开始,MLE 组件提供了一个 JavaScript MySQL 事务 API,它执行大多数 MySQL 事务性 SQL 语句的操作,例如 作为 START TRANSACTION
,COMMIT
、ROLLBACK
和 SET AUTOCOMMIT
。对 Savepoints 也支持。
这项工作还实现了一个 SqlError 对象。
更多信息:https://dev.mysql.com/doc/refman/9.2/en/srjsapi-transactions.html
JavaScript ENUM 和 SET 支持
MySQL 9.2.0 及更高版本中的 JavaScript 存储例程的参数支持 MySQL 的 ENUM 和 SET 类型。
更多信息: https://dev.mysql.com/doc/refman/9.2/en/srjs-data-arguments.html#srjs-enum-set-conversion
EXPLAIN FORMAT=JSON
MySQL 9.2.0 在输出中添加格式版本信息 EXPLAIN FORMAT=JSON
设置 JSON 格式版本时设置为 2。
要设置格式版本,设置 explain_json_format_version=2
。输出如下:
mysql> EXPLAIN FORMAT=JSON SELECT 1\G *************************** 1. row *************************** EXPLAIN: { "query": "/* select#1 */ select 1 AS `1`", "query_plan": { "operation": "Rows fetched before execution", "access_type": "rows_fetched_before_execution", "estimated_rows": 1.0, "estimated_total_cost": 0.0, "estimated_first_row_cost": 0.0 }, "query_type": "select", "json_schema_version": "2.0" } 1 row in set (0.00 sec)
此语句的输出不包含任何格式 version 信息时 explain_json_format_version
为 1,如下所示:
mysql> SET explain_json_format_version=1; Query OK, 0 rows affected (0.00 sec) mysql> SELECT @@explain_json_format_version; +-------------------------------+ | @@explain_json_format_version | +-------------------------------+ | 1 | +-------------------------------+ 1 row in set (0.00 sec) mysql> EXPLAIN FORMAT=JSON SELECT 1\G *************************** 1. row *************************** EXPLAIN: { "query_block": { "select_id": 1, "message": "No tables used" } } 1 row in set, 1 warning (0.00 sec)
更多信息:https://dev.mysql.com/doc/refman/9.2/en/explain.html#explain-execution-plan
2弃用的功能
以下功能在 MySQL 9.2 中已弃用 ,并且可能会在未来的系列中删除。替代方案如下所示,请尽快更新。
对于使用 MySQL 9.2 中已弃用的功能且已在更高版本的 MySQL 版本中删除的应用程序,语句在从 MySQL 9.2 源复制到运行更高版本的副本时可能会失败,或者可能对源和副本产生不同的影响。为避免此类问题,应修改使用 9.2 中已弃用功能的应用程序以避免这些问题,并尽可能使用替代方法。
函数(已启用)
-
version_tokens_delete()
-
version_tokens_edit()
-
version_tokens_lock_exclusive()
-
version_tokens_lock_shared()
-
version_tokens_set()
-
version_tokens_show()
-
version_tokens_unlock()
权限
- VERSION_TOKEN_ADMIN
系统变量
-
version_tokens_session
-
version_tokens_session_number
3删除的功能
以下功能已过时,并已在 MySQL 9.2.0 中删除。
关键字限制
BINLOG 关键字现在受到限制,不能再作为 MySQL 存储例程或存储函数中的标签使用。在升级到 MySQL 9.2 之前,您应该相应地更新任何受影响的应用程序。
更多信息:https://dev.mysql.com/doc/refman/9.2/en/keywkeywordsords.html

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
FreeFileSync 14.0 发布
FreeFileSync 是一款开源软件,适用于 Windows、macOS 和 Linux。FreeFileSync 本质是一个用于文件夹对比和同步的软件,它可以创建和管理所有重要文件的备份副本。FreeFileSync 不是每次都复制每个文件,而是确定源文件夹和目标文件夹之间的差异,并只传输所需的最低数据量。 FreeFileSync 14.0更新内容如下: Dark模式支持(Windows 10 20H1、macOS 10.14 (Mojave)、Linux) 修复了dock 图标进度百分比差异(macOS) 防止在 comparison/synchronization 期间出现“App Napp”(macOS) 增强不支持字符的 EINVAL 错误消息 支持以后台优先级运行(Linux) 修复创建 shell 链接时安装程序访问被拒绝的问题(Windows) 改进了文件列表的大小和日期格式(macOS) 改进的上下文菜单自定义网格 将峰值内存消耗减少 12% 自动为配置面板背景设置适当的文本颜色 恢复并更新意大利语翻译 更新说明:https://freefilesync.org...
- 下一篇
JTopCMS V4 更新:模型字段支持国密 SM4 加密
介绍 : JTopCMS V4 信创版功能更新!模型字段支持国密SM4加密,数据库存储密文更加安全。 SM4(对称加密算法) 特点:SM4 是中国制定的分组密码算法,属于分组密码体制。 用途:主要用于数据加密,如文件加密、数据传输加密等。 JTopCMS在信创项目实施过程中,解决了要求加密自定义模型字段为密文, 并存储在各种国产数据库,同时加密字段仍支持一定程度的查询与高级搜索的需求!配合安全员对密锁的控制,从而符合较高等级的安全规范。 模型字段支持加密与算法 通过安全员控制对密锁的使用 数据库存储密文(以下为某项目人大金仓数据库截图) 系统特色 1. 基于 JAVA 标准自主研发,支持主流国产信创环境,国产数据库以及国产中间件。安全,稳定,经过多次政务与企事业单位项目长期检验,顺利通过等保二,三级评测。 2. 高效便捷的进行站点文档采编,审核,页面模板制作。具有性能优秀,稳定,安全,易扩展等特点,适合建设政府机构,教育部门以及企事业单位的站群系统,支持集群管理 系统支持集群化部署,可任意增加和较少 CMS 服务节点,根据业务需要独立部署服务节点,加强系统容错性 并发能力及...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8编译安装MySQL8.0.19
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker快速安装Oracle11G,搭建oracle11g学习环境