我目前有两张桌子:
tblFoo
foo_id foo_text
1 foo
和
tblBar
bar_id foo_id bar_text
100 1 hello
101 1 world
我正在尝试使用一个函数返回一个多态行类型,a la:
CREATE OR REPLACE FUNCTION fetch_foo(p_foo_id int) RETURNS record as $$
DECLARE
rec record;
BEGIN
SELECT
F.foo_id,
foo_text,
array_agg(bar_text) as bar_text
FROM tblFoo F
LEFT JOIN tblBar B
ON F.foo_id = B.foo_id
WHERE F.foo_id = p_foo_id
GROUP BY F.foo_id
INTO rec;
RETURN rec;
END
$$ LANGUAGE plpgsql;
目前,这将返回一个名为 'fetch_foo' 的串联字段(1,"foo","{hello,world}")
。我已阅读使用 PL/pgSQL 在 PostgreSQL 中将多个字段作为记录返回的回复,并了解我不需要在这里创建类型来返回具有单独字段的记录。我在看什么?
谢谢。