我想用MySQL Workbench创建一个Lost Update。因此,我有2个连接到我的数据库和2个事务。我还将事务隔离级别更改为未提交读取,但事务A在update语句启动时使用当前数据。它从不使用第一个select语句中的数据,而使用select ...进行更新时,事务b被阻止。
交易A(首先开始):
Start transaction;
SELECT * FROM table;
Select sleep(10); -- <- Transaction B executes in this 10 seconds
UPDATE table SET Number = Number + 10 WHERE FirstName = "Name1";
COMMIT;
交易B:
Start transaction;
UPDATE table SET Number = Number - 5 WHERE FirstName = "Name1";
COMMIT;
是否可以使用MySQL Workbench创建此故障。我的代码出了什么问题?
感谢您的帮助
答案 0 :(得分:0)
执行睡眠后,A中的数据更新。选择“先进行交易”。