SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
INSERT INTO Students VALUES(’Jason’,50);
UPDATE Students SET mark = mark + 10;
COMMIT
SET TRANSACTION ISOLATION READ COMMITED
INSERT INTO Students VALUES (’Kylie’,70);
SELECT SUM(mark) FROM Students;
COMMIT
如果我有两个同时运行的事务,我如何知道哪个事务首先运行以及查询将返回哪些值?我知道 Serialized 隔离了 T1。但更重要的是我不知道如何继续。
最佳答案
如果同时运行两者,READ COMMITTED
将等待 SERIALIZABLE
完成。顺便说一句,您的 TSQL
上似乎缺少 BEGIN TRANSACTION
。
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION
INSERT INTO Students VALUES(’Jason’,50);
UPDATE Students SET mark = mark + 10;
COMMIT TRANSACTION
SET TRANSACTION ISOLATION READ COMMITTED
BEGIN TRANSACTION
INSERT INTO Students VALUES (’Kylie’,70);
SELECT SUM(mark) FROM Students;
COMMIT TRANSACTION
关于mysql - 我如何知道哪些事务首先运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58654823/