MySQL 8.0+ 应使用 @@transaction_isolation 替代已移除的 @@tx_isolation,查询当前会话值用 SELECT @@transaction_isolation,全局值用 @@global.transaction_isolation。MySQL 8.0+ 查不到 @@tx_isolation?用这个替代mysql 8.0 开始,@@tx_isolation 已被弃用并移除,直接执行会报错 unknown system variable 'tx_isolation'。这不是你权限或配置的问题,是官方彻底删了这个变量。正确做法是查 @@transaction_isolation:SELECT @@transaction_isolation;返回值形如 'REPEATABLE-READ'、'READ-COMMITTED' 等,大小写敏感该变量在会话级和全局级都存在,查的是当前会话的值如果想查全局默认值,用 SELECT @@global.transaction_isolation;MySQL 5.7 及更早版本还能用 @@tx_isolation 吗?能,但要注意格式差异:MySQL 5.7 返回的是带引擎前缀的字符串,比如 'REPEATABLEREAD'(中间无短横)或 'SERIALIZABLE',而 MySQL 8.0+ 统一为带短横的标准写法('REPEATABLE-READ')。这意味着跨版本写自动化脚本时,不能简单靠字符串匹配判断隔离级别,得做兼容处理:REPEATABLEREAD → 对应 REPEATABLE-READREADCOMMITTED → 对应 READ-COMMITTEDREADUNCOMMITTED → 对应 READ-UNCOMMITTED为什么改名?和 SET TRANSACTION ISOLATION LEVEL 有啥关系改名是为了对齐 SQL 标准术语,transaction_isolation 是标准系统变量名,tx_isolation 是 MySQL 旧别名。两者指向同一底层状态,只是变量名不同。设置隔离级别时,命令本身没变: Trenz AI驱动的社交电商营销平台,专为TikTok Shop设计
如何查询当前会话的事务隔离级别_SELECT @@tx_isolation
最新推荐文章于 2026-07-02 16:02:29 发布
3269

被折叠的 条评论
为什么被折叠?



