首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置tx_isolation与SET事务隔离级别

设置tx_isolation与SET事务隔离级别
EN

Stack Overflow用户
提问于 2017-11-30 14:09:09
回答 1查看 10K关注 0票数 6

在MySQL (特别是5.5)中,我们似乎有两种不同的方法来设置事务隔离级别。我只想知道我的想法是否正确

代码语言:javascript
复制
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ

就像

代码语言:javascript
复制
SET tx_isolation = 'REPEATABLE-READ'

其他可能的隔离级别也是如此。

编辑1

我还不够精确。@danihp对我的问题的回答是正确的。但实际上,我想问一下

代码语言:javascript
复制
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ

对比

代码语言:javascript
复制
SET SESSION tx_isolation = 'REPEATABLE-READ'

(注意SET SESSION而不是SET)。

它们完全一样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-30 14:39:59

服务器系统变量:

可以使用SET tx_isolation = 'REPEATABLE-READ'服务器系统变量上设置默认隔离级别。“MySQL服务器维护许多系统变量,这些变量指示如何配置它”,该变量设置了默认事务级别。

当前事务:

可以使用SET TRANSACTION ISOLATION LEVEL REPEATABLE READ当前事务上的隔离级别从默认级别更改为新级别。

公告:

"__transaction_isolation是在MySQL 5.7.20中添加的,作为tx_isolation__的别名,现在已不再推荐,并在MySQL 8.0中删除。应用程序应该调整为使用transaction_isolation而不是tx_isolation__。“

参考资料

编辑的

您可以使用交易记录将多个语句“封装”为一个操作。当您在此时启动事务时,可以更改此新事务的隔离级别:

代码语言:javascript
复制
START TRANSACTION;
/** change isolation level here with SET TRANSACTION statement 
to avoid default isolation level **/
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47575445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档