<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table.sgml,v 1.20 2000/04/11 14:43:54 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table.sgml,v 1.21 2000/04/12 04:40:03 thomas Exp $
Postgres documentation
-->
[ CONSTRAINT <replaceable class="parameter">name</replaceable> ] { [
NULL | NOT NULL ] | UNIQUE | PRIMARY KEY | CHECK <replaceable
class="parameter">constraint</replaceable> | REFERENCES
- <replaceable class="parameter">referenced table</replaceable>
- (<replaceable class="parameter">referenced column</replaceable>)
- [ MATCH <replaceable class="parameter">match type</replaceable> ]
+ <replaceable class="parameter">reftable</replaceable>
+ (<replaceable class="parameter">refcolumn</replaceable>)
+ [ MATCH <replaceable class="parameter">matchtype</replaceable> ]
[ ON DELETE <replaceable class="parameter">action</replaceable> ]
[ ON UPDATE <replaceable class="parameter">action</replaceable> ]
[ [ NOT ] DEFERRABLE ]
- [ INITIALLY <replaceable class="parameter"> check time </replaceable> ] }
+ [ INITIALLY <replaceable class="parameter">checktime</replaceable> ] }
[, ...]
</synopsis>
</para>
</title>
<synopsis>
[ CONSTRAINT <replaceable class="parameter">name</replaceable> ] REFERENCES
-<replaceable class="parameter">referenced table</replaceable> [ ( <replaceable class="parameter"> referenced column</replaceable> ) ]
+<replaceable class="parameter">reftable</replaceable> [ ( <replaceable class="parameter">refcolumn</replaceable> ) ]
[ MATCH <replaceable class="parameter">matchtype</replaceable> ]
[ ON DELETE <replaceable class="parameter">action</replaceable> ]
[ ON UPDATE <replaceable class="parameter">action</replaceable> ]
[ [ NOT ] DEFERRABLE ]
-[ INITIALLY <replaceable class="parameter"> check time </replaceable> ]
+[ INITIALLY <replaceable class="parameter">checktime</replaceable> ]
</synopsis>
<para>
The REFERENCES constraint specifies a rule that a column
<refsect3 id="R3-SQL-REFERENCES-1">
<title>Inputs</title>
+
<para>
<variablelist>
<varlistentry>
</para>
</listitem>
</varlistentry>
+
<varlistentry>
- <term><replaceable class="parameter">referenced table</replaceable></term>
+ <term><replaceable class="parameter">reftable</replaceable></term>
<listitem>
<para>
The table that contains the data to check against.
</para>
</listitem>
</varlistentry>
+
<varlistentry>
- <term><replaceable class="parameter">referenced column</replaceable></term>
+ <term><replaceable class="parameter">refcolumn</replaceable></term>
<listitem>
<para>
- The column in the <replaceable class="parameter">referenced table</replaceable>
+ The column in <replaceable class="parameter">reftable</replaceable>
to check the data against. If this is not specified, the PRIMARY KEY of the
- <replaceable class="parameter">referenced table</replaceable> is used.
+ <replaceable class="parameter">reftable</replaceable> is used.
</para>
</listitem>
</varlistentry>
</para>
</listitem>
</varlistentry>
+
<varlistentry>
<term> [ NOT ] DEFERRABLE </term>
<listitem>
</para>
</listitem>
</varlistentry>
+
<varlistentry>
- <term>INITIALLY <replaceable class="parameter"> check time </replaceable></term>
+ <term>INITIALLY <replaceable class="parameter">checktime</replaceable></term>
<listitem>
<para>
- <replaceable class="parameter">check time</replaceable> has two possible values
+ <replaceable class="parameter">checktime</replaceable> has two possible values
which specify the default time to check the constraint.
+
<variablelist>
<varlistentry>
<term>DEFERRED</term>
- <para>
- Check this constraint at the end of the transaction.
- </para>
+ <listitem>
+ <para>
+ Check this constraint at the end of the transaction.
+ </para>
+ </listitem>
</varlistentry>
+
<varlistentry>
<term>IMMEDIATE</term>
- <para>
- Check this constraint after each statement.
- </para>
- </varlistentry>
+ <listitem>
+ <para>
+ Check this constraint after each statement.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
</para>
</listitem>
<varlistentry>
<term><computeroutput>
ERROR: <replaceable class="parameter">name</replaceable> referential integrity violation - key referenced from
-<replaceable class="parameter">table</replaceable> not found in <replaceable class="parameter">referenced table</replaceable>
+<replaceable class="parameter">table</replaceable> not found in <replaceable class="parameter">reftable</replaceable>
</computeroutput></term>
<listitem>
<para>
</title>
<para>
Currently <productname>Postgres</productname> only supports
- MATCH FULL and an unspecified MATCH type.
+ MATCH FULL and an unspecified match type.
In addition, the referenced columns are supposed to be
the columns of a UNIQUE constraint in the referenced table,
however <productname>Postgres</productname> does not
enforce this.
</para>
</refsect3>
+ </refsect2>
</refsect1>
<refsect1 id="R1-SQL-TABLECONSTRAINT-1">
[ CONSTRAINT name ] { PRIMARY KEY | UNIQUE } ( <replaceable class="parameter">column</replaceable> [, ...] )
[ CONSTRAINT name ] CHECK ( <replaceable>constraint</replaceable> )
[ CONSTRAINT name ] FOREIGN KEY ( <replaceable class="parameter">column</replaceable> [, ...] )
- REFERENCES <replaceable class="parameter">referenced table</replaceable>
- (<replaceable class="parameter">referenced column</replaceable> [, ...] )
- [ MATCH <match type> ]
+ REFERENCES <replaceable class="parameter">reftable</replaceable>
+ (<replaceable class="parameter">refcolumn</replaceable> [, ...] )
+ [ MATCH <replaceable class="parameter">matchtype</replaceable> ]
[ ON DELETE <replaceable class="parameter">action</replaceable> ]
[ ON UPDATE <replaceable class="parameter">action</replaceable> ]
[ [ NOT ] DEFERRABLE ]
- [ INITIALLY <replaceable class="parameter"> check time </replaceable> ]
+ [ INITIALLY <replaceable class="parameter">checktime</replaceable> ]
</synopsis>
</para>
<refsect2 id="R2-SQL-TABLECONSTRAINT-1">
</refsect3>
</refsect2>
- <refsect2 id="R2-SQL-REFERENCES-1">
+ <refsect2 id="R2-SQL-REFERENCES-2">
<refsect2info>
<date>2000-02-04</date>
</refsect2info>
<synopsis>
[ CONSTRAINT <replaceable class="parameter">name</replaceable> ]
FOREIGN KEY ( <replaceable class="parameter">column</replaceable> [, ...] ) REFERENCES
-<replaceable class="parameter">referenced table</replaceable> [ ( <replaceable class="parameter">referenced column</replaceable> [, ...] ) ]
+<replaceable class="parameter">reftable</replaceable> [ ( <replaceable class="parameter">refcolumn</replaceable> [, ...] ) ]
[ MATCH <replaceable class="parameter">matchtype</replaceable> ]
[ ON DELETE <replaceable class="parameter">action</replaceable> ]
[ ON UPDATE <replaceable class="parameter">action</replaceable> ]
[ [ NOT ] DEFERRABLE ]
-[ INITIALLY <replaceable class="parameter"> check time </replaceable> ]
+[ INITIALLY <replaceable class="parameter">checktime</replaceable> ]
</synopsis>
<para>
The REFERENCES constraint specifies a rule that a column
a FOREIGN KEY table constraint.
</para>
- <refsect3 id="R3-SQL-REFERENCES-1">
+ <refsect3 id="R3-SQL-REFERENCES-5">
<title>Inputs</title>
<para>
<variablelist>
</listitem>
</varlistentry>
<varlistentry>
- <term><replaceable class="parameter">referenced table</replaceable></term>
+ <term><replaceable class="parameter">reftable</replaceable></term>
<listitem>
<para>
The table that contains the data to check against.
<term><replaceable class="parameter">referenced column</replaceable> [, ...]</term>
<listitem>
<para>
- One or more column in the <replaceable class="parameter">referenced table</replaceable>
+ One or more column in the <replaceable class="parameter">reftable</replaceable>
to check the data against. If this is not specified, the PRIMARY KEY of the
- <replaceable class="parameter">referenced table</replaceable> is used.
+ <replaceable class="parameter">reftable</replaceable> is used.
</para>
</listitem>
</varlistentry>
</listitem>
</varlistentry>
<varlistentry>
- <term>INITIALLY <replaceable class="parameter"> check time </replaceable></term>
+ <term>INITIALLY <replaceable class="parameter">checktime</replaceable></term>
<listitem>
<para>
- <replaceable class="parameter">check time</replaceable> has two possible values
+ <replaceable class="parameter">checktime</replaceable> has two possible values
which specify the default time to check the constraint.
<variablelist>
<varlistentry>
<term>DEFERRED</term>
- <para>
- Check this constraint at the end of the transaction.
- </para>
+ <listitem>
+ <para>
+ Check this constraint at the end of the transaction.
+ </para>
+ </listitem>
</varlistentry>
<varlistentry>
<term>IMMEDIATE</term>
- <para>
- Check this constraint after each statement.
- </para>
+ <listitem>
+ <para>
+ Check this constraint after each statement.
+ </para>
+ </listitem>
</varlistentry>
</variablelist>
</para>
</variablelist>
</para>
</refsect3>
- <refsect3 id="R3-SQL-REFERENCES-2">
+ <refsect3 id="R3-SQL-REFERENCES-6">
<refsect3info>
<date>2000-02-04</date>
</refsect3info>
<varlistentry>
<term><computeroutput>
ERROR: <replaceable class="parameter">name</replaceable> referential integrity violation - key referenced from
-<replaceable class="parameter">table</replaceable> not found in <replaceable class="parameter">referenced table</replaceable>
+<replaceable class="parameter">table</replaceable> not found in <replaceable class="parameter">reftable</replaceable>
</computeroutput></term>
<listitem>
<para>