进入 PL/pgSQL...
我还在学习语法。有时,我会遇到此错误消息:
ERROR: cannot use RETURN QUERY in a non-SETOF function
这听起来有点神秘,我无法在 Postgres 文档中找到信息。因此问题:
- 什么是非 SETOF 函数?
同样,假设存在这样的东西,什么是 SETOF 函数?
最佳答案
What's a non-SETOF function?
这是一个返回单个(标量)值的函数,例如integer
或 varchar
,例如
select upper('foo')`
upper()
是一个“非 SETOF”函数,它只返回一个值。所以一个功能是例如定义为returns integer
不能返回SELECT查询的完整结果,需要使用return 42;
但是不能使用return query .. .
;
what's a SETOF function?
它是一个返回结果集的函数 - 类似于表(它通常声明为 returns table (...)
。您可以像使用表一样使用它:
select *
from some_set_returning_function();
关于postgresql - 什么是 "non-SETOF function"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55688418/