【发布时间】:2016-03-16 05:32:33
【问题描述】:
我想用两个独立的事务重新创建脏读异常。我已经启动了两次终端并将两者都连接到我的数据库。我在两者中都使用命令start transaction; 开始了事务。然后我在第一个终端窗口中更新了一个信息,这就是它向我展示的内容:Rows matched: 1 Changed: 1 Warnings: 0。选择此表中的所有数据后,更改就在那里。但是当我试图在第二个终端窗口中显示更改后的数据select * from adress; 时,它并没有显示更改,而是显示了旧数据。
最后我需要证明脏读异常并使用正确的隔离级别避免这种情况发生。
这是我的终端窗口的两个屏幕截图。
交易1:
事务 2:
我做错了什么?
感谢您的帮助, 罗宾
【问题讨论】:
-
您是否在第一个终端提交了您的交易?
-
我刚刚在第一个终端中尝试了提交。第二个终端仍然显示旧数据。只有当我提交第二个终端时,数据也是相同的。是不是也意味着两笔交易都结束了?
标签: mysql transactions dirtyread