gpt4 book ai didi

mysql - SET tx_isolation 与 SET TRANSACTION ISOLATION LEVEL

转载 作者:行者123 更新时间:2023-11-29 01:50:10 25 4
gpt4 key购买 nike

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

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ

完全一样

SET tx_isolation = 'REPEATABLE-READ'

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

编辑 1

我不够准确。鉴于我的问题,@danihp 的回答是正确的。但实际上,我想问一下

SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ

对比

SET SESSION tx_isolation = 'REPEATABLE-READ'

(注意 SET SESSION 而不是 SET)。

它们完全一样吗?

最佳答案

服务器系统变量:

您可以使用 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。”

引用资料:

已编辑

您可以使用 transactions将多个语句“封装”为单个操作。当你start a transaction ,就在此时,您可以更改此新事务的隔离级别:

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;

关于mysql - SET tx_isolation 与 SET TRANSACTION ISOLATION LEVEL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47575445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com