Обсуждение: Mention RETURNING ... INTO target

Поиск
Список
Период
Сортировка

Mention RETURNING ... INTO target

От
PG Doc comments form
Дата:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/14/sql-insert.html
Description:

It looks like INSERT INTO ... RETURNING allows defining a target for the
returned values like SELECT ... INTO does. 

This could be mentioned in the synopsis, or at least in the description of
"output_expression", maybe even garnished with an example.

Thanks,
s.

Re: Mention RETURNING ... INTO target

От
"David G. Johnston"
Дата:
n Tue, Jun 7, 2022 at 1:30 PM PG Doc comments form <noreply@postgresql.org> wrote:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/14/sql-insert.html
Description:

It looks like INSERT INTO ... RETURNING allows defining a target for the
returned values like SELECT ... INTO does.

This could be mentioned in the synopsis, or at least in the description of
"output_expression", maybe even garnished with an example.


That isn't how it works.  RETURNING simply turns INSERT into a result set producing SQL Command.  And SQL doesn't have a concept of "target" (variables) in the sense you are thinking. pg/pgsql does, allowing result set data to be placed into variables.

If you look you'll notice a corresponding lack of "INTO" on the SELECT Command reference page as well, for the same reason.

David J.

Re: Mention RETURNING ... INTO target

От
Tom Lane
Дата:
"David G. Johnston" <david.g.johnston@gmail.com> writes:
> On Tue, Jun 7, 2022 at 1:30 PM PG Doc comments form <noreply@postgresql.org>
> wrote:
>> It looks like INSERT INTO ... RETURNING allows defining a target for the
>> returned values like SELECT ... INTO does.

> That isn't how it works.  RETURNING simply turns INSERT into a result set
> producing SQL Command.  And SQL doesn't have a concept of "target"
> (variables) in the sense you are thinking. pg/pgsql does, allowing result
> set data to be placed into variables.

Right.  And in fact this *is* documented in the context of pl/pgsql:

https://www.postgresql.org/docs/current/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-ONEROW

            regards, tom lane



Re[2]: Mention RETURNING ... INTO target

От
"Stefan Schmiedl"
Дата:
From "Tom Lane" <tgl@sss.pgh.pa.us>
To "David G. Johnston" <david.g.johnston@gmail.com>
Date 07.06.2022 23:07:30
Subject Re: Mention RETURNING ... INTO target

"David G. Johnston" <david.g.johnston@gmail.com> writes:
On Tue, Jun 7, 2022 at 1:30 PM PG Doc comments form <noreply@postgresql.org>
wrote:
It looks like INSERT INTO ... RETURNING allows defining a target for the
returned values like SELECT ... INTO does.
 
That isn't how it works. RETURNING simply turns INSERT into a result set
producing SQL Command. And SQL doesn't have a concept of "target"
(variables) in the sense you are thinking. pg/pgsql does, allowing result
set data to be placed into variables.
 
Right. And in fact this *is* documented in the context of pl/pgsql:
 
 
regards, tom lane

Thanks for the pointer to the documentation. I did not think to look for
"single-row results" when looking for an assumed option of "INSERT".

s.