是否可以使用MySQL Workbench创建一个Lost Update

时间:2018-01-23 11:46:15

标签: mysql sql transactions isolation-level transaction-isolation

我想用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创建此故障。我的代码出了什么问题?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

执行睡眠后,A中的数据更新。选择“先进行交易”。