返回时
SETOF record,输出列未键入且未命名。因此,这种形式不能像在子查询或表中一样直接在FROM子句中使用。
即,在发行时:
SELECt * from events_by_type_2('social');我们得到这个错误:
错误:返回“记录”的函数需要列定义列表
但是,SQL调用者可以将其“广播”为正确的列类型。此表格可以正常工作:
SELECt * from events_by_type_2('social') as (id bigint, name text);结果为:
id | 姓名 ---- + ---------------- 1 | 舞会 2 | 欢乐时光 ...
因此,
SETOF record被认为不太实用。仅在事先不知道结果的列类型时才应使用它。



