From: Tom Lane Date: Fri, 8 Apr 2011 14:54:03 +0000 (-0400) Subject: Add an example of WITH (UPDATE RETURNING) INSERT to the INSERT ref page. X-Git-Tag: REL9_1_BETA1~139 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8ad58279fa75636b776e4c648e1ffc7079a2c7d9;p=postgresql 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. --- diff --git a/doc/src/sgml/ref/insert.sgml b/doc/src/sgml/ref/insert.sgml index 629cc7ea55..a5c0d5a0a6 100644 --- a/doc/src/sgml/ref/insert.sgml +++ b/doc/src/sgml/ref/insert.sgml @@ -298,6 +298,20 @@ INSERT INTO tictactoe (game, board) INSERT INTO distributors (did, dname) VALUES (DEFAULT, 'XYZ Widgets') RETURNING did; + + + + + 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: + +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;