mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-09 08:10:09 +08:00
This is a docs patch to go with my DROP CONSTRAINT patch.
Christopher Kings
This commit is contained in:
parent
7160c86ec2
commit
3d56fb7598
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_table.sgml,v 1.24 2001/05/09 13:27:15 momjian Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_table.sgml,v 1.25 2001/05/30 13:01:08 momjian Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -38,6 +38,8 @@ ALTER TABLE <replaceable class="PARAMETER">table</replaceable>
|
||||
RENAME TO <replaceable class="PARAMETER">newtable</replaceable>
|
||||
ALTER TABLE <replaceable class="PARAMETER">table</replaceable>
|
||||
ADD <replaceable class="PARAMETER">table constraint definition</replaceable>
|
||||
ALTER TABLE [ ONLY ] <replaceable class="PARAMETER">table</replaceable>
|
||||
DROP CONSTRAINT <replaceable class="PARAMETER">constraint</replaceable> { RESTRICT | CASCADE }
|
||||
ALTER TABLE <replaceable class="PARAMETER">table</replaceable>
|
||||
OWNER TO <replaceable class="PARAMETER">new owner</replaceable>
|
||||
</synopsis>
|
||||
@ -177,6 +179,8 @@ ALTER TABLE <replaceable class="PARAMETER">table</replaceable>
|
||||
The ADD <replaceable class="PARAMETER">table constraint definition</replaceable> clause
|
||||
adds a new constraint to the table using the same syntax as <xref
|
||||
linkend="SQL-CREATETABLE" endterm="SQL-CREATETABLE-title">.
|
||||
The DROP CONSTRAINT <replaceable class="PARAMETER">constraint</replaceable> clause
|
||||
drops all CHECK constraints on the table (and its children) that match <replaceable class="PARAMETER">constraint</replaceable>.
|
||||
The OWNER clause changes the owner of the table to the user <replaceable class="PARAMETER">
|
||||
new user</replaceable>.
|
||||
</para>
|
||||
@ -208,11 +212,31 @@ ALTER TABLE <replaceable class="PARAMETER">table</replaceable>
|
||||
|
||||
<para>
|
||||
In the current implementation, only FOREIGN KEY and CHECK constraints can
|
||||
be added to a table. To create or remove a unique constraint, create
|
||||
be added to a table. To create a unique constraint, create
|
||||
a unique index (see <xref linkend="SQL-CREATEINDEX"
|
||||
endterm="SQL-CREATEINDEX-title">).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Currently only CHECK constraints can be dropped from a table. The RESTRICT
|
||||
keyword is required, although dependencies are not checked. The CASCADE
|
||||
option is unsupported. To remove a PRIMARY or UNIQUE constraint, drop the
|
||||
relevant index using the <xref linkend="SQL-DROPINDEX" endterm="SQL-DROPINDEX-TITLE"> command.
|
||||
To remove FOREIGN KEY constraints you need to recreate
|
||||
and reload the table, using other parameters to the
|
||||
<xref linkend="SQL-CREATETABLE" endterm="SQL-CREATETABLE-title">
|
||||
command.
|
||||
</para>
|
||||
<para>
|
||||
For example, to drop all constraints on a table <literal>distributors</literal>:
|
||||
<programlisting>
|
||||
CREATE TABLE temp AS SELECT * FROM distributors;
|
||||
DROP TABLE distributors;
|
||||
CREATE TABLE distributors AS SELECT * FROM temp;
|
||||
DROP TABLE temp;
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You must own the table in order to change it.
|
||||
Changing any part of the schema of a system
|
||||
@ -260,6 +284,13 @@ ALTER TABLE distributors ADD CONSTRAINT zipchk CHECK (char_length(zipcode) = 5)
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To remove a check constraint from a table and all its children:
|
||||
<programlisting>
|
||||
ALTER TABLE distributors DROP CONSTRAINT zipchk
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To add a foreign key constraint to a table:
|
||||
<programlisting>
|
||||
@ -289,34 +320,6 @@ ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES
|
||||
statement which are not yet directly supported by <productname>Postgres</productname>:
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<synopsis>
|
||||
ALTER TABLE <replaceable class="PARAMETER">table</replaceable> DROP CONSTRAINT <replaceable class="PARAMETER">constraint</replaceable> { RESTRICT | CASCADE }
|
||||
</synopsis>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Removes a table constraint (such as a check constraint,
|
||||
unique constraint, or foreign key constraint). To
|
||||
remove a unique constraint, drop a unique index.
|
||||
To remove other kinds of constraints you need to recreate
|
||||
and reload the table, using other parameters to the
|
||||
<xref linkend="SQL-CREATETABLE" endterm="SQL-CREATETABLE-title">
|
||||
command.
|
||||
</para>
|
||||
<para>
|
||||
For example, to drop any constraints on a table <literal>distributors</literal>:
|
||||
<programlisting>
|
||||
CREATE TABLE temp AS SELECT * FROM distributors;
|
||||
DROP TABLE distributors;
|
||||
CREATE TABLE distributors AS SELECT * FROM temp;
|
||||
DROP TABLE temp;
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>
|
||||
<synopsis>
|
||||
|
Loading…
Reference in New Issue
Block a user