我想用两个独立的事务重新创建一个脏读异常。我已经启动了两次终端并连接了我的数据库。我在两者中都使用命令start transaction;
启动了事务。然后我更新了第一个终端窗口中的一个信息,这就是它向我展示的内容:Rows matched: 1 Changed: 1 Warnings: 0
。选择此表中的所有数据后,更改就在那里。但是当我试图在第二个终端窗口中显示已更改的数据select * from adress;
时,它没有显示更改,而是显示旧数据。
最后,我需要证明脏读异常,并以正确的隔离级别避免这种情况发生。
以下是我的终端窗口的两个屏幕截图。
交易1:
transaction 1 http://i64.tinypic.com/mcapo6.png
交易2:
transaction 2 http://i65.tinypic.com/o0tcwg.png
我做错了什么?
感谢您的帮助, 罗宾
答案 0 :(得分:0)
您需要在第一笔交易中提交更改
https://dev.mysql.com/doc/refman/5.7/en/commit.html
交易的想法是允许你做一系列的操作,要么一切都必须成功,要么都不能发生。
希望有所帮助。