用mysql启动两个独立的事务

时间:2015-12-10 14:23:44

标签: mysql transactions dirtyread

我想用两个独立的事务重新创建一个脏读异常。我已经启动了两次终端并连接了我的数据库。我在两者中都使用命令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

我做错了什么?

感谢您的帮助, 罗宾

1 个答案:

答案 0 :(得分:0)

您需要在第一笔交易中提交更改

https://dev.mysql.com/doc/refman/5.7/en/commit.html

交易的想法是允许你做一系列的操作,要么一切都必须成功,要么都不能发生。

希望有所帮助。