summaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorBruce Momjian2006-01-19 23:09:46 +0000
committerBruce Momjian2006-01-19 23:09:46 +0000
commit936433ba53998cd2d87399d894f00120138c9cdd (patch)
tree5ac1ef156de7dba7e8671b8a2ddf7d6a0f892edc /doc/src
parentb148ce8a4a1e24cefdb5f376c0e600ad0401ae47 (diff)
Doc patch that adds an example of a correllated UPDATE.
David Fetter
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/ref/update.sgml20
1 files changed, 19 insertions, 1 deletions
diff --git a/doc/src/sgml/ref/update.sgml b/doc/src/sgml/ref/update.sgml
index 0e354af969e..ff8f1337e4c 100644
--- a/doc/src/sgml/ref/update.sgml
+++ b/doc/src/sgml/ref/update.sgml
@@ -1,5 +1,5 @@
<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/update.sgml,v 1.33 2005/10/12 23:19:22 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/update.sgml,v 1.33.2.1 2006/01/19 23:09:46 momjian Exp $
PostgreSQL documentation
-->
@@ -205,14 +205,32 @@ UPDATE employees SET sales_count = sales_count + 1 FROM accounts
WHERE accounts.name = 'Acme Corporation'
AND employees.id = accounts.sales_person;
</programlisting>
+ </para>
+ <para>
Perform the same operation, using a sub-select in the
<literal>WHERE</literal> clause:
<programlisting>
UPDATE employees SET sales_count = sales_count + 1 WHERE id =
(SELECT sales_person FROM accounts WHERE name = 'Acme Corporation');
</programlisting>
+ </para>
+ <para>
+ Now that all the papers are signed, update the most recently closed
+ deal of the travelling salesperson who closed the Rocket Powered
+ Skates deal with the Acme Corporation.
+<programlisting>
+UPDATE employees SET last_closed_deal = deal.id
+ FROM accounts JOIN deals ON (account.id = deal.account_id)
+ WHERE deal.employee_id = employees.id
+ AND deal.name = 'Rocket Powered Skates'
+ AND accounts.name = 'Acme Corporation'
+ ORDER BY deal.signed_date DESC LIMIT 1;
+</programlisting>
+ </para>
+
+ <para>
Attempt to insert a new stock item along with the quantity of stock. If
the item already exists, instead update the stock count of the existing
item. To do this without failing the entire transaction, use savepoints.