11<!--
2- $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table.sgml,v 1.20 2000/04/11 14:43:54 momjian Exp $
2+ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table.sgml,v 1.21 2000/04/12 04:40:03 thomas Exp $
33Postgres documentation
44-->
55
@@ -451,13 +451,13 @@ CREATE TABLE distributors (
451451[ CONSTRAINT <replaceable class="parameter">name</replaceable> ] { [
452452 NULL | NOT NULL ] | UNIQUE | PRIMARY KEY | CHECK <replaceable
453453 class="parameter">constraint</replaceable> | REFERENCES
454- <replaceable class="parameter">referenced table </replaceable>
455- (<replaceable class="parameter">referenced column </replaceable>)
456- [ MATCH <replaceable class="parameter">match type </replaceable> ]
454+ <replaceable class="parameter">reftable </replaceable>
455+ (<replaceable class="parameter">refcolumn </replaceable>)
456+ [ MATCH <replaceable class="parameter">matchtype </replaceable> ]
457457 [ ON DELETE <replaceable class="parameter">action</replaceable> ]
458458 [ ON UPDATE <replaceable class="parameter">action</replaceable> ]
459459 [ [ NOT ] DEFERRABLE ]
460- [ INITIALLY <replaceable class="parameter"> check time </replaceable> ] }
460+ [ INITIALLY <replaceable class="parameter">checktime </replaceable> ] }
461461 [, ...]
462462 </synopsis>
463463 </para>
@@ -938,12 +938,12 @@ ERROR: Cannot insert a duplicate key into a unique index.
938938 </title>
939939 <synopsis>
940940[ CONSTRAINT <replaceable class="parameter">name</replaceable> ] REFERENCES
941- <replaceable class="parameter">referenced table </replaceable> [ ( <replaceable class="parameter"> referenced column </replaceable> ) ]
941+ <replaceable class="parameter">reftable </replaceable> [ ( <replaceable class="parameter">refcolumn </replaceable> ) ]
942942[ MATCH <replaceable class="parameter">matchtype</replaceable> ]
943943[ ON DELETE <replaceable class="parameter">action</replaceable> ]
944944[ ON UPDATE <replaceable class="parameter">action</replaceable> ]
945945[ [ NOT ] DEFERRABLE ]
946- [ INITIALLY <replaceable class="parameter"> check time </replaceable> ]
946+ [ INITIALLY <replaceable class="parameter">checktime </replaceable> ]
947947 </synopsis>
948948 <para>
949949 The REFERENCES constraint specifies a rule that a column
@@ -954,6 +954,7 @@ ERROR: Cannot insert a duplicate key into a unique index.
954954
955955 <refsect3 id="R3-SQL-REFERENCES-1">
956956 <title>Inputs</title>
957+
957958 <para>
958959 <variablelist>
959960 <varlistentry>
@@ -964,21 +965,23 @@ ERROR: Cannot insert a duplicate key into a unique index.
964965</para>
965966 </listitem>
966967 </varlistentry>
968+
967969 <varlistentry>
968- <term><replaceable class="parameter">referenced table </replaceable></term>
970+ <term><replaceable class="parameter">reftable </replaceable></term>
969971 <listitem>
970972 <para>
971973 The table that contains the data to check against.
972974 </para>
973975 </listitem>
974976 </varlistentry>
977+
975978 <varlistentry>
976- <term><replaceable class="parameter">referenced column </replaceable></term>
979+ <term><replaceable class="parameter">refcolumn </replaceable></term>
977980 <listitem>
978981 <para>
979- The column inthe <replaceable class="parameter">referenced table </replaceable>
982+ The column in <replaceable class="parameter">reftable </replaceable>
980983 to check the data against. If this is not specified, the PRIMARY KEY of the
981- <replaceable class="parameter">referenced table </replaceable> is used.
984+ <replaceable class="parameter">reftable </replaceable> is used.
982985 </para>
983986 </listitem>
984987 </varlistentry>
@@ -1096,6 +1099,7 @@ ERROR: Cannot insert a duplicate key into a unique index.
10961099 </para>
10971100 </listitem>
10981101 </varlistentry>
1102+
10991103 <varlistentry>
11001104 <term> [ NOT ] DEFERRABLE </term>
11011105 <listitem>
@@ -1105,25 +1109,32 @@ ERROR: Cannot insert a duplicate key into a unique index.
11051109 </para>
11061110 </listitem>
11071111 </varlistentry>
1112+
11081113 <varlistentry>
1109- <term>INITIALLY <replaceable class="parameter"> check time </replaceable></term>
1114+ <term>INITIALLY <replaceable class="parameter">checktime </replaceable></term>
11101115 <listitem>
11111116 <para>
1112- <replaceable class="parameter">check time </replaceable> has two possible values
1117+ <replaceable class="parameter">checktime </replaceable> has two possible values
11131118 which specify the default time to check the constraint.
1119+
11141120 <variablelist>
11151121 <varlistentry>
11161122 <term>DEFERRED</term>
1117- <para>
1118- Check this constraint at the end of the transaction.
1119- </para>
1123+ <listitem>
1124+ <para>
1125+ Check this constraint at the end of the transaction.
1126+ </para>
1127+ </listitem>
11201128 </varlistentry>
1129+
11211130 <varlistentry>
11221131 <term>IMMEDIATE</term>
1123- <para>
1124- Check this constraint after each statement.
1125- </para>
1126- </varlistentry>
1132+ <listitem>
1133+ <para>
1134+ Check this constraint after each statement.
1135+ </para>
1136+ </listitem>
1137+ </varlistentry>
11271138 </variablelist>
11281139 </para>
11291140 </listitem>
@@ -1150,7 +1161,7 @@ ERROR: Cannot insert a duplicate key into a unique index.
11501161 <varlistentry>
11511162 <term><computeroutput>
11521163ERROR: <replaceable class="parameter">name</replaceable> referential integrity violation - key referenced from
1153- <replaceable class="parameter">table</replaceable> not found in <replaceable class="parameter">referenced table </replaceable>
1164+ <replaceable class="parameter">table</replaceable> not found in <replaceable class="parameter">reftable </replaceable>
11541165 </computeroutput></term>
11551166 <listitem>
11561167 <para>
@@ -1193,13 +1204,14 @@ ERROR: <replaceable class="parameter">name</replaceable> referential integrity
11931204 </title>
11941205 <para>
11951206 Currently <productname>Postgres</productname> only supports
1196- MATCH FULL and an unspecifiedMATCH type.
1207+ MATCH FULL and an unspecifiedmatch type.
11971208 In addition, the referenced columns are supposed to be
11981209 the columns of a UNIQUE constraint in the referenced table,
11991210 however <productname>Postgres</productname> does not
12001211 enforce this.
12011212 </para>
12021213 </refsect3>
1214+ </refsect2>
12031215 </refsect1>
12041216
12051217 <refsect1 id="R1-SQL-TABLECONSTRAINT-1">
@@ -1211,13 +1223,13 @@ ERROR: <replaceable class="parameter">name</replaceable> referential integrity
12111223[ CONSTRAINT name ] { PRIMARY KEY | UNIQUE } ( <replaceable class="parameter">column</replaceable> [, ...] )
12121224[ CONSTRAINT name ] CHECK ( <replaceable>constraint</replaceable> )
12131225[ CONSTRAINT name ] FOREIGN KEY ( <replaceable class="parameter">column</replaceable> [, ...] )
1214- REFERENCES <replaceable class="parameter">referenced table </replaceable>
1215- (<replaceable class="parameter">referenced column </replaceable> [, ...] )
1216- [ MATCH <match type > ]
1226+ REFERENCES <replaceable class="parameter">reftable </replaceable>
1227+ (<replaceable class="parameter">refcolumn </replaceable> [, ...] )
1228+ [ MATCH <replaceable class="parameter">matchtype</replaceable > ]
12171229 [ ON DELETE <replaceable class="parameter">action</replaceable> ]
12181230 [ ON UPDATE <replaceable class="parameter">action</replaceable> ]
12191231 [ [ NOT ] DEFERRABLE ]
1220- [ INITIALLY <replaceable class="parameter"> check time </replaceable> ]
1232+ [ INITIALLY <replaceable class="parameter">checktime </replaceable> ]
12211233 </synopsis>
12221234 </para>
12231235 <refsect2 id="R2-SQL-TABLECONSTRAINT-1">
@@ -1464,7 +1476,7 @@ CREATE TABLE distributors (
14641476 </refsect3>
14651477 </refsect2>
14661478
1467- <refsect2 id="R2-SQL-REFERENCES-1 ">
1479+ <refsect2 id="R2-SQL-REFERENCES-2 ">
14681480 <refsect2info>
14691481 <date>2000-02-04</date>
14701482 </refsect2info>
@@ -1474,12 +1486,12 @@ CREATE TABLE distributors (
14741486 <synopsis>
14751487[ CONSTRAINT <replaceable class="parameter">name</replaceable> ]
14761488FOREIGN KEY ( <replaceable class="parameter">column</replaceable> [, ...] ) REFERENCES
1477- <replaceable class="parameter">referenced table </replaceable> [ ( <replaceable class="parameter">referenced column </replaceable> [, ...] ) ]
1489+ <replaceable class="parameter">reftable </replaceable> [ ( <replaceable class="parameter">refcolumn </replaceable> [, ...] ) ]
14781490[ MATCH <replaceable class="parameter">matchtype</replaceable> ]
14791491[ ON DELETE <replaceable class="parameter">action</replaceable> ]
14801492[ ON UPDATE <replaceable class="parameter">action</replaceable> ]
14811493[ [ NOT ] DEFERRABLE ]
1482- [ INITIALLY <replaceable class="parameter"> check time </replaceable> ]
1494+ [ INITIALLY <replaceable class="parameter">checktime </replaceable> ]
14831495 </synopsis>
14841496 <para>
14851497 The REFERENCES constraint specifies a rule that a column
@@ -1488,7 +1500,7 @@ FOREIGN KEY ( <replaceable class="parameter">column</replaceable> [, ...] ) REFE
14881500 a FOREIGN KEY table constraint.
14891501 </para>
14901502
1491- <refsect3 id="R3-SQL-REFERENCES-1 ">
1503+ <refsect3 id="R3-SQL-REFERENCES-5 ">
14921504 <title>Inputs</title>
14931505 <para>
14941506 <variablelist>
@@ -1509,7 +1521,7 @@ FOREIGN KEY ( <replaceable class="parameter">column</replaceable> [, ...] ) REFE
15091521 </listitem>
15101522 </varlistentry>
15111523 <varlistentry>
1512- <term><replaceable class="parameter">referenced table </replaceable></term>
1524+ <term><replaceable class="parameter">reftable </replaceable></term>
15131525 <listitem>
15141526 <para>
15151527 The table that contains the data to check against.
@@ -1520,9 +1532,9 @@ FOREIGN KEY ( <replaceable class="parameter">column</replaceable> [, ...] ) REFE
15201532 <term><replaceable class="parameter">referenced column</replaceable> [, ...]</term>
15211533 <listitem>
15221534 <para>
1523- One or more column in the <replaceable class="parameter">referenced table </replaceable>
1535+ One or more column in the <replaceable class="parameter">reftable </replaceable>
15241536 to check the data against. If this is not specified, the PRIMARY KEY of the
1525- <replaceable class="parameter">referenced table </replaceable> is used.
1537+ <replaceable class="parameter">reftable </replaceable> is used.
15261538 </para>
15271539 </listitem>
15281540 </varlistentry>
@@ -1650,23 +1662,27 @@ FOREIGN KEY ( <replaceable class="parameter">column</replaceable> [, ...] ) REFE
16501662 </listitem>
16511663 </varlistentry>
16521664 <varlistentry>
1653- <term>INITIALLY <replaceable class="parameter"> check time </replaceable></term>
1665+ <term>INITIALLY <replaceable class="parameter">checktime </replaceable></term>
16541666 <listitem>
16551667 <para>
1656- <replaceable class="parameter">check time </replaceable> has two possible values
1668+ <replaceable class="parameter">checktime </replaceable> has two possible values
16571669 which specify the default time to check the constraint.
16581670 <variablelist>
16591671 <varlistentry>
16601672 <term>DEFERRED</term>
1661- <para>
1662- Check this constraint at the end of the transaction.
1663- </para>
1673+ <listitem>
1674+ <para>
1675+ Check this constraint at the end of the transaction.
1676+ </para>
1677+ </listitem>
16641678 </varlistentry>
16651679 <varlistentry>
16661680 <term>IMMEDIATE</term>
1667- <para>
1668- Check this constraint after each statement.
1669- </para>
1681+ <listitem>
1682+ <para>
1683+ Check this constraint after each statement.
1684+ </para>
1685+ </listitem>
16701686 </varlistentry>
16711687 </variablelist>
16721688 </para>
@@ -1675,7 +1691,7 @@ FOREIGN KEY ( <replaceable class="parameter">column</replaceable> [, ...] ) REFE
16751691 </variablelist>
16761692 </para>
16771693 </refsect3>
1678- <refsect3 id="R3-SQL-REFERENCES-2 ">
1694+ <refsect3 id="R3-SQL-REFERENCES-6 ">
16791695 <refsect3info>
16801696 <date>2000-02-04</date>
16811697 </refsect3info>
@@ -1692,7 +1708,7 @@ FOREIGN KEY ( <replaceable class="parameter">column</replaceable> [, ...] ) REFE
16921708 <varlistentry>
16931709 <term><computeroutput>
16941710ERROR: <replaceable class="parameter">name</replaceable> referential integrity violation - key referenced from
1695- <replaceable class="parameter">table</replaceable> not found in <replaceable class="parameter">referenced table </replaceable>
1711+ <replaceable class="parameter">table</replaceable> not found in <replaceable class="parameter">reftable </replaceable>
16961712 </computeroutput></term>
16971713 <listitem>
16981714 <para>