【发布时间】:2018-01-23 11:46:15
【问题描述】:
我想用 MySQL Workbench 创建一个丢失的更新。因此,我有 2 个连接到我的数据库和 2 个事务。我还将事务隔离级别更改为读取未提交但事务 A 在更新语句启动时使用当前数据。它从不使用第一个 select 语句中的数据,并且使用 select ... for update 事务 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 创建此故障。我的代码有什么问题?
感谢您的帮助
【问题讨论】:
标签: mysql sql transactions isolation-level transaction-isolation