0

有什么方法可以检测 Postgres 中的查询返回的集合是空的吗?

即:

FOR varname IN
   select testvar from foo
LOOP
   <do some stuff on the set>
END LOOP;
-- Loop finished or Set was EMPTY
IF NOT FOUND ?????   THEN
    <do some other stuff for empty set>
END IF;

当然,我可以在循环之前运行查询并使用NOT FOUND或引入一个计数器,然后检查它是否0在循环的末尾,但我想知道是否有办法避免这种情况。

(可能更适合 dba.SE 但从这里开始)

4

1 回答 1

1

如果您只想使用内置解决方案,那么您应该使用FOUND变量。当true结果不为空或false结果为空时。它是安全的,并且值不依赖于循环体中的语句。

于 2019-11-22T10:24:35.930 回答