diff options
author | Daniel Gustafsson | 2022-03-29 12:53:20 +0000 |
---|---|---|
committer | Daniel Gustafsson | 2022-03-29 12:53:20 +0000 |
commit | 3785d8e98b741749d09f1cfe119ec04961ed07b2 (patch) | |
tree | 2e9a578e6afe592004ea675198ed906e1c4743c5 | |
parent | ebc8b7d4416d8e0dfb7c05132ef6182fd3daf885 (diff) |
doc: Make UPDATE FROM examples consistent
The original first half of the example used an employees table and an
accounts.sales_person foreign key column, while the second half (added
in commit 8f889b1083f) used a salesmen table and accounts.sales_id
for the foreign key. This makes everything use the original names.
Author: Dagfinn Ilmari Mannsåker <[email protected]>
Discussion: https://postgr.es/m/[email protected]
-rw-r--r-- | doc/src/sgml/ref/update.sgml | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/doc/src/sgml/ref/update.sgml b/doc/src/sgml/ref/update.sgml index 3a0285df793..2ab24b0523e 100644 --- a/doc/src/sgml/ref/update.sgml +++ b/doc/src/sgml/ref/update.sgml @@ -387,23 +387,23 @@ UPDATE employees SET sales_count = sales_count + 1 WHERE id = <para> Update contact names in an accounts table to match the currently assigned - salesmen: + salespeople: <programlisting> UPDATE accounts SET (contact_first_name, contact_last_name) = - (SELECT first_name, last_name FROM salesmen - WHERE salesmen.id = accounts.sales_id); + (SELECT first_name, last_name FROM employees + WHERE employees.id = accounts.sales_person); </programlisting> A similar result could be accomplished with a join: <programlisting> UPDATE accounts SET contact_first_name = first_name, contact_last_name = last_name - FROM salesmen WHERE salesmen.id = accounts.sales_id; + FROM employees WHERE employees.id = accounts.sales_person; </programlisting> However, the second query may give unexpected results - if <structname>salesmen</structname>.<structfield>id</structfield> is not a unique key, whereas + if <structname>employees</structname>.<structfield>id</structfield> is not a unique key, whereas the first query is guaranteed to raise an error if there are multiple <structfield>id</structfield> matches. Also, if there is no match for a particular - <structname>accounts</structname>.<structfield>sales_id</structfield> entry, the first query + <structname>accounts</structname>.<structfield>sales_person</structfield> entry, the first query will set the corresponding name fields to NULL, whereas the second query will not update that row at all. </para> |