我试着理解SQL命令是如何工作的:
BEGIN;
UPDATE post SET hits = hits + 1;
-- run from another session: DELETE FROM post WHERE hits = 10;
COMMIT;
让我们说,我们有一个hits = 9和10的行。 然后我们运行该查询,然后呢?我们的行会是什么(和为什么)?
答案 0 :(得分:1)
这取决于每个会话中的事务隔离级别,但默认情况下为
只有在执行COMMIT后,UPDATE所做的所有更改才会对其他会话可见。
所以你的DELETE会话就像没有UPDATE一样。