From 3ee692d82f8001c95f3154080886dd764e21d5b0 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Tue, 31 Mar 2020 16:31:44 -0400 Subject: [PATCH] doc: adjust UPDATE/DELETE's FROM/USING to match SELECT's FROM Previously the syntax and wording were unclear. Reported-by: Alexey Bashtanov Discussion: https://postgr.es/m/968d4724-8e58-788f-7c45-f7b1813824cc@imap.cc Backpatch-through: 9.5 --- doc/src/sgml/ref/delete.sgml | 20 ++++++++++---------- doc/src/sgml/ref/update.sgml | 22 +++++++++++----------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/doc/src/sgml/ref/delete.sgml b/doc/src/sgml/ref/delete.sgml index df8cea48cf..08fb032b50 100644 --- a/doc/src/sgml/ref/delete.sgml +++ b/doc/src/sgml/ref/delete.sgml @@ -23,7 +23,7 @@ PostgreSQL documentation [ WITH [ RECURSIVE ] with_query [, ...] ] DELETE FROM [ ONLY ] table_name [ * ] [ [ AS ] alias ] - [ USING using_list ] + [ USING from_item [, ...] ] [ WHERE condition | WHERE CURRENT OF cursor_name ] [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ] @@ -117,17 +117,17 @@ DELETE FROM [ ONLY ] table_name [ * - using_list + from_item - A list of table expressions, allowing columns from other tables - to appear in the WHERE condition. This is similar - to the list of tables that can be specified in the of a - SELECT statement; for example, an alias for - the table name can be specified. Do not repeat the target table - in the using_list, - unless you wish to set up a self-join. + A table expression allowing columns from other tables to appear + in the WHERE condition. This uses the same + syntax as the + of a SELECT statement; for example, an alias + for the table name can be specified. Do not repeat the target + table as a from_item + unless you wish to set up a self-join (in which case it must appear + with an alias in the from_item). diff --git a/doc/src/sgml/ref/update.sgml b/doc/src/sgml/ref/update.sgml index f58dcd8877..07958e7447 100644 --- a/doc/src/sgml/ref/update.sgml +++ b/doc/src/sgml/ref/update.sgml @@ -27,7 +27,7 @@ UPDATE [ ONLY ] table_name [ * ] [ ( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) | ( column_name [, ...] ) = ( sub-SELECT ) } [, ...] - [ FROM from_list ] + [ FROM from_item [, ...] ] [ WHERE condition | WHERE CURRENT OF cursor_name ] [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ] @@ -164,17 +164,17 @@ UPDATE [ ONLY ] table_name [ * ] [ - from_list + from_item - A list of table expressions, allowing columns from other tables - to appear in the WHERE condition and the update - expressions. This is similar to the list of tables that can be - specified in the of a SELECT - statement. Note that the target table must not appear in the - from_list, unless you intend a self-join (in which - case it must appear with an alias in the from_list). + A table expression allowing columns from other tables to appear in + the WHERE condition and update expressions. This + uses the same syntax as the of a SELECT statement; + for example, an alias for the table name can be specified. Do not + repeat the target table as a from_item + unless you intend a self-join (in which case it must appear with + an alias in the from_item). @@ -264,7 +264,7 @@ UPDATE count When a FROM clause is present, what essentially happens is that the target table is joined to the tables mentioned in the - from_list, and each output row of the join + from_item list, and each output row of the join represents an update operation for the target table. When using FROM you should ensure that the join produces at most one output row for each row to be modified. In