【发布时间】:2021-11-08 14:57:55
【问题描述】:
假设我有以下简单的代码:
BEGIN;
WITH foo AS (SELECT * FROM t1),
bar AS (SELECT * FROM t1)
SELECT * FROM foo, bar;
COMMIT;
隔离级别为by default, READ-COMMITTED。这当然意味着如果你有两个单独的选择,你可以(理论上)有不可重复的读取。
我的问题是:在示例代码中,这两个不同的选择是否算作一个已提交的读取命令,还是每个选择都单独进行,从而(理论上)可以看到不同的行?
【问题讨论】:
-
我已经尝试并未能在official dox 中找到答案。 “阅读 dox”的答案是完全有效的——只要你包含一个链接供我阅读。谢谢!
-
它只运行最后一个 Select 语句,因为您实际上并没有在此查询中使用 CTE。
-
我想我将不得不更新我的“琐碎”示例