0

我试图了解该 SQL 命令是如何工作的:

BEGIN;
UPDATE post SET hits = hits + 1;
-- run from another session:  DELETE FROM post WHERE hits = 10;
COMMIT;

比方说,我们有一个 hits = 9 和 10 的行。然后我们运行那个查询,然后呢?我们的行会是什么样子(以及为什么)?

4

1 回答 1

1

这取决于每个会话中的事务隔离级别,但默认情况下
,UPDATE 所做的所有更改只有在执行 COMMIT 后才会对其他会话可见。
因此,您的 DELETE 会话将表现得就像根本没有 UPDATE 一样。

于 2013-06-19T11:58:39.940 回答