Commit 8ad58279 authored by Tom Lane's avatar Tom Lane

Add an example of WITH (UPDATE RETURNING) INSERT to the INSERT ref page.

Per a discussion with Gavin Flower.  This barely scratches the surface
of potential WITH (something RETURNING) use cases, of course, but it's
one of the simplest compelling examples I can think of.
parent b6bc481d
...@@ -298,6 +298,20 @@ INSERT INTO tictactoe (game, board) ...@@ -298,6 +298,20 @@ INSERT INTO tictactoe (game, board)
<programlisting> <programlisting>
INSERT INTO distributors (did, dname) VALUES (DEFAULT, 'XYZ Widgets') INSERT INTO distributors (did, dname) VALUES (DEFAULT, 'XYZ Widgets')
RETURNING did; RETURNING did;
</programlisting>
</para>
<para>
Increment the sales count of the salesperson who manages the
account for Acme Corporation, and record the whole updated row
along with current time in a log table:
<programlisting>
WITH upd AS (
UPDATE employees SET sales_count = sales_count + 1 WHERE id =
(SELECT sales_person FROM accounts WHERE name = 'Acme Corporation')
RETURNING *
)
INSERT INTO employees_log SELECT *, current_timestamp FROM upd;
</programlisting> </programlisting>
</para> </para>
</refsect1> </refsect1>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment