mirror of
https://github.com/postgres/postgres.git
synced 2025-12-22 17:42:17 +03:00
Provide adequate documentation of the "table_name *" notation.
Somewhere along the line, somebody decided to remove all trace of this notation from the documentation text. It was still in the command syntax synopses, or at least some of them, but with no indication what it meant. This will not do, as evidenced by the confusion apparent in bug #7543; even if the notation is now unnecessary, people will find it in legacy SQL code and need to know what it does.
This commit is contained in:
@@ -625,10 +625,12 @@ ALTER TABLE [ IF EXISTS ] <replaceable class="PARAMETER">name</replaceable>
|
||||
<term><replaceable class="PARAMETER">name</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The name (possibly schema-qualified) of an existing table to
|
||||
alter. If <literal>ONLY</> is specified, only that table is
|
||||
altered. If <literal>ONLY</> is not specified, the table and any
|
||||
descendant tables are altered.
|
||||
The name (optionally schema-qualified) of an existing table to
|
||||
alter. If <literal>ONLY</> is specified before the table name, only
|
||||
that table is altered. If <literal>ONLY</> is not specified, the table
|
||||
and all its descendant tables (if any) are altered. Optionally,
|
||||
<literal>*</> can be specified after the table name to explicitly
|
||||
indicate that descendant tables are included.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -1026,7 +1028,7 @@ ALTER TABLE distributors DROP CONSTRAINT zipchk;
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To remove a check constraint from a table only:
|
||||
To remove a check constraint from one table only:
|
||||
<programlisting>
|
||||
ALTER TABLE ONLY distributors DROP CONSTRAINT zipchk;
|
||||
</programlisting>
|
||||
|
||||
@@ -22,7 +22,7 @@ PostgreSQL documentation
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
[ WITH [ RECURSIVE ] <replaceable class="parameter">with_query</replaceable> [, ...] ]
|
||||
DELETE FROM [ ONLY ] <replaceable class="PARAMETER">table_name</replaceable> [ [ AS ] <replaceable class="parameter">alias</replaceable> ]
|
||||
DELETE FROM [ ONLY ] <replaceable class="PARAMETER">table_name</replaceable> [ * ] [ [ AS ] <replaceable class="parameter">alias</replaceable> ]
|
||||
[ USING <replaceable class="PARAMETER">using_list</replaceable> ]
|
||||
[ WHERE <replaceable class="PARAMETER">condition</replaceable> | WHERE CURRENT OF <replaceable class="PARAMETER">cursor_name</replaceable> ]
|
||||
[ RETURNING * | <replaceable class="parameter">output_expression</replaceable> [ [ AS ] <replaceable class="parameter">output_name</replaceable> ] [, ...] ]
|
||||
@@ -47,13 +47,6 @@ DELETE FROM [ ONLY ] <replaceable class="PARAMETER">table_name</replaceable> [ [
|
||||
</para>
|
||||
</tip>
|
||||
|
||||
<para>
|
||||
By default, <command>DELETE</command> will delete rows in the
|
||||
specified table and all its child tables. If you wish to delete only
|
||||
from the specific table mentioned, you must use the
|
||||
<literal>ONLY</literal> clause.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
There are two ways to delete rows in a table using information
|
||||
contained in other tables in the database: using sub-selects, or
|
||||
@@ -96,21 +89,17 @@ DELETE FROM [ ONLY ] <replaceable class="PARAMETER">table_name</replaceable> [ [
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>ONLY</></term>
|
||||
<listitem>
|
||||
<para>
|
||||
If specified, delete rows from the named table only. When not
|
||||
specified, any tables inheriting from the named table are also processed.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><replaceable class="parameter">table_name</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The name (optionally schema-qualified) of an existing table.
|
||||
The name (optionally schema-qualified) of the table to delete rows
|
||||
from. If <literal>ONLY</> is specified before the table name,
|
||||
matching rows are deleted from the named table only. If
|
||||
<literal>ONLY</> is not specified, matching rows are also deleted
|
||||
from any tables inheriting from the named table. Optionally,
|
||||
<literal>*</> can be specified after the table name to explicitly
|
||||
indicate that descendant tables are included.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@@ -21,7 +21,7 @@ PostgreSQL documentation
|
||||
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
LOCK [ TABLE ] [ ONLY ] <replaceable class="PARAMETER">name</replaceable> [, ...] [ IN <replaceable class="PARAMETER">lockmode</replaceable> MODE ] [ NOWAIT ]
|
||||
LOCK [ TABLE ] [ ONLY ] <replaceable class="PARAMETER">name</replaceable> [ * ] [, ...] [ IN <replaceable class="PARAMETER">lockmode</replaceable> MODE ] [ NOWAIT ]
|
||||
|
||||
<phrase>where <replaceable class="PARAMETER">lockmode</replaceable> is one of:</phrase>
|
||||
|
||||
@@ -111,9 +111,11 @@ LOCK [ TABLE ] [ ONLY ] <replaceable class="PARAMETER">name</replaceable> [, ...
|
||||
<listitem>
|
||||
<para>
|
||||
The name (optionally schema-qualified) of an existing table to
|
||||
lock. If <literal>ONLY</> is specified, only that table is
|
||||
locked. If <literal>ONLY</> is not specified, the table and all
|
||||
its descendant tables (if any) are locked.
|
||||
lock. If <literal>ONLY</> is specified before the table name, only that
|
||||
table is locked. If <literal>ONLY</> is not specified, the table and all
|
||||
its descendant tables (if any) are locked. Optionally, <literal>*</>
|
||||
can be specified after the table name to explicitly indicate that
|
||||
descendant tables are included.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
@@ -298,10 +298,12 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
|
||||
<term><replaceable class="parameter">table_name</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The name (optionally schema-qualified) of an existing table or
|
||||
view. If <literal>ONLY</> is specified, only that table is
|
||||
scanned. If <literal>ONLY</> is not specified, the table and
|
||||
any descendant tables are scanned.
|
||||
The name (optionally schema-qualified) of an existing table or view.
|
||||
If <literal>ONLY</> is specified before the table name, only that
|
||||
table is scanned. If <literal>ONLY</> is not specified, the table
|
||||
and all its descendant tables (if any) are scanned. Optionally,
|
||||
<literal>*</> can be specified after the table name to explicitly
|
||||
indicate that descendant tables are included.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -1661,15 +1663,24 @@ SELECT distributors.* WHERE distributors.name = 'Westward';
|
||||
</refsect2>
|
||||
|
||||
<refsect2>
|
||||
<title><literal>ONLY</literal> and Parentheses</title>
|
||||
<title><literal>ONLY</literal> and Inheritance</title>
|
||||
|
||||
<para>
|
||||
The SQL standard requires parentheses around the table name
|
||||
after <literal>ONLY</literal>, as in <literal>SELECT * FROM ONLY
|
||||
(tab1), ONLY (tab2) WHERE ...</literal>. PostgreSQL supports that
|
||||
as well, but the parentheses are optional. (This point applies
|
||||
equally to all SQL commands supporting the <literal>ONLY</literal>
|
||||
option.)
|
||||
The SQL standard requires parentheses around the table name when
|
||||
writing <literal>ONLY</literal>, for example <literal>SELECT * FROM ONLY
|
||||
(tab1), ONLY (tab2) WHERE ...</literal>. <productname>PostgreSQL</>
|
||||
considers these parentheses to be optional.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<productname>PostgreSQL</> allows a trailing <literal>*</> to be written to
|
||||
explicitly specify the non-<literal>ONLY</literal> behavior of including
|
||||
child tables. The standard does not allow this.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
(These points apply equally to all SQL commands supporting the
|
||||
<literal>ONLY</literal> option.)
|
||||
</para>
|
||||
</refsect2>
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ PostgreSQL documentation
|
||||
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
TRUNCATE [ TABLE ] [ ONLY ] <replaceable class="PARAMETER">name</replaceable> [, ... ]
|
||||
TRUNCATE [ TABLE ] [ ONLY ] <replaceable class="PARAMETER">name</replaceable> [ * ] [, ... ]
|
||||
[ RESTART IDENTITY | CONTINUE IDENTITY ] [ CASCADE | RESTRICT ]
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
@@ -47,10 +47,12 @@ TRUNCATE [ TABLE ] [ ONLY ] <replaceable class="PARAMETER">name</replaceable> [,
|
||||
<term><replaceable class="PARAMETER">name</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The name (optionally schema-qualified) of a table to be
|
||||
truncated. If <literal>ONLY</> is specified, only that table is
|
||||
truncated. If <literal>ONLY</> is not specified, the table and
|
||||
all its descendant tables (if any) are truncated.
|
||||
The name (optionally schema-qualified) of a table to truncate.
|
||||
If <literal>ONLY</> is specified before the table name, only that table
|
||||
is truncated. If <literal>ONLY</> is not specified, the table and all
|
||||
its descendant tables (if any) are truncated. Optionally, <literal>*</>
|
||||
can be specified after the table name to explicitly indicate that
|
||||
descendant tables are included.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@@ -22,7 +22,7 @@ PostgreSQL documentation
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
[ WITH [ RECURSIVE ] <replaceable class="parameter">with_query</replaceable> [, ...] ]
|
||||
UPDATE [ ONLY ] <replaceable class="PARAMETER">table_name</replaceable> [ [ AS ] <replaceable class="parameter">alias</replaceable> ]
|
||||
UPDATE [ ONLY ] <replaceable class="PARAMETER">table_name</replaceable> [ * ] [ [ AS ] <replaceable class="parameter">alias</replaceable> ]
|
||||
SET { <replaceable class="PARAMETER">column_name</replaceable> = { <replaceable class="PARAMETER">expression</replaceable> | DEFAULT } |
|
||||
( <replaceable class="PARAMETER">column_name</replaceable> [, ...] ) = ( { <replaceable class="PARAMETER">expression</replaceable> | DEFAULT } [, ...] ) } [, ...]
|
||||
[ FROM <replaceable class="PARAMETER">from_list</replaceable> ]
|
||||
@@ -41,13 +41,6 @@ UPDATE [ ONLY ] <replaceable class="PARAMETER">table_name</replaceable> [ [ AS ]
|
||||
columns not explicitly modified retain their previous values.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
By default, <command>UPDATE</command> will update rows in the
|
||||
specified table and all its subtables. If you wish to only update
|
||||
the specific table mentioned, you must use the <literal>ONLY</>
|
||||
clause.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
There are two ways to modify a table using information contained in
|
||||
other tables in the database: using sub-selects, or specifying
|
||||
@@ -97,6 +90,11 @@ UPDATE [ ONLY ] <replaceable class="PARAMETER">table_name</replaceable> [ [ AS ]
|
||||
<listitem>
|
||||
<para>
|
||||
The name (optionally schema-qualified) of the table to update.
|
||||
If <literal>ONLY</> is specified before the table name, matching rows
|
||||
are updated in the named table only. If <literal>ONLY</> is not
|
||||
specified, matching rows are also updated in any tables inheriting from
|
||||
the named table. Optionally, <literal>*</> can be specified after the
|
||||
table name to explicitly indicate that descendant tables are included.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
Reference in New Issue
Block a user