只是感兴趣,为什么下面的(简化)示例以这种方式工作。
CREATE TABLE test (id SERIAL, val INT NOT NULL, PRIMARY KEY(id));
INSERT INTO test (val) VALUES (1);
WITH t AS ( UPDATE test SET val = 1 RETURNING id )
DELETE FROM test WHERE id IN ( SELECT id FROM t);
结果:
删除 0
问题:
为什么 DELETE 没有找到要删除的行?
PostgreSql 版本 9.2.1
事务隔离 = 读已提交
谢谢!