Re: returning setof from insert ?

Поиск
Список
Период
Сортировка
Искать
От
Magnus Hagander
Тема
Re: returning setof from insert ?
Дата
Msg-id
CABUevExhRnd7DgFs1cHpZP-HZQrG2JbodMKwM974K1HV3ZFREQ@mail.gmail.com
Ответ на
Список
Дерево обсуждения
returning setof from insert ? Laura Smith <n5d9xq3ti233xiyif2vp@protonmail.ch>
Re: returning setof from insert ? Thomas Kellerer <shammat@gmx.net>
Re: returning setof from insert ? Laura Smith <n5d9xq3ti233xiyif2vp@protonmail.ch>
Re: returning setof from insert ? Magnus Hagander <magnus@hagander.net>
On Wed, Jul 14, 2021 at 1:22 PM Laura Smith
 wrote:
>
> Hi,
>
> A bit of pl/pgsql writer's block going on here ...
>
> Postgres complains "RETURN cannot have a parameter in function returning set" in relation to the below. I don't really want to have to "RETURNS TABLE" because that means I have to enumerate all the table columns.
>
> I'm sure I'm missing something simple here !
>
> CREATE OR REPLACE FUNCTION foobar(foo text,bar text) RETURNS SETOF bar AS $$
> DECLARE
> v_row bar%ROWTYPE;
> BEGIN
> insert into bar(f,b) values(foo,bar) returning * into v_row;
> return v_row;
> END;
> $$ language plpgsql;

You can write that either as:

RETURN NEXT v_row;

(the NEXT being the missing keyword)


Or just the whole thing as
RETURN QUERY INSERT INTO ... RETURNING *

and get rid of the variable completely, if the function is that trivial.

-- 
 Magnus Hagander
 Me: https://www.hagander.net/
 Work: https://www.redpill-linpro.com/


В списке pgsql-general по дате отправления
От: Laura Smith
Дата:
Сообщение: returning setof from insert ?
От: Thomas Kellerer
Дата:
FAQ