0

考虑一个事务 T1,

Start transaction;   
Update emp set emp_id=1 where emp_id=3;   
commit;

我使用的引擎是 INNODB 引擎。
在上述事务的提交操作之前,我再次访问了该表,它显示了以前提交的值。如果在表上放置了行级别锁定,它可能会显示错误(当某些事务在中间时您无法访问)。 我的理解有什么错误吗?谁可以帮我这个事?

4

1 回答 1

0

即使在事务提交之前,作为事务的一部分所做的任何事情都可用于同一事务。这些更改在其他事务中不可用。

要对此进行测试,您需要在一个事务中更新,然后从另一个终端开始新事务并尝试访问。第二个事务将能够读取数据,但如果您尝试更新更新将阻塞并等待第一个事务被提交。

如果您希望第二个选择等待并返回更新的数据,您应该使用 select 进行更新。

于 2013-03-03T04:20:08.090 回答