我正在开发MariaDB。我有一个2个会话并行工作的场景,并了解他们使用SELECT COUNT()时的行为和事情。但是,在最后的SELECT COUNT()中我得到6作为计数,但我期望得到5.我相信我的问题在于代码设置的隔离级别。我知道默认隔离级别是REPEATABLE READ和SET SESSION为整个会话更改它,而SET TRANsaction仅为其声明的会话的下一个事务更改它。最后一次SET TRANSACTION对我来说很奇怪,因为我相信之前隔离级别已经恢复到可重复读取。
这是我创建的表:
CREATE TABLE Accounts (acctID INTEGER NOT NULL PRIMARY KEY, balance
INTEGER NOT NULL, CONSTRAINT unloanable_account CHECK (balance >= 0));
INSERT INTO Accounts (acctID,balance) VALUES (101,1000);
INSERT INTO Accounts (acctID,balance) VALUES (202,2000);
SELECT * FROM Accounts;
COMMIT;
和2个会议: