<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/create_constraint.sgml,v 1.14 2006/09/16 00:30:17 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/create_constraint.sgml,v 1.15 2006/10/16 19:30:09 momjian Exp $
PostgreSQL documentation
-->
<refsynopsisdiv>
<synopsis>
CREATE CONSTRAINT TRIGGER <replaceable class="parameter">name</replaceable>
- AFTER <replaceable class="parameter">events</replaceable> ON
- <replaceable class="parameter">tablename</replaceable> <replaceable class="parameter">constraint</replaceable> <replaceable class="parameter">attributes</replaceable>
- FOR EACH ROW EXECUTE PROCEDURE <replaceable class="parameter">funcname</replaceable> ( <replaceable class="parameter">args</replaceable> )
+ AFTER <replaceable class="parameter">event [ OR ... ]</replaceable>
+ ON <replaceable class="parameter">table_name</replaceable>
+ [ FROM <replaceable class="parameter">referenced_table_name</replaceable> ]
+ { NOT DEFERRABLE | [ DEFERABBLE ] { INITIALLY IMMEDIATE | INITIALLY DEFERRED } }
+ FOR EACH ROW
+ EXECUTE PROCEDURE <replaceable class="parameter">funcname</replaceable> ( <replaceable class="parameter">arguments</replaceable> )
</synopsis>
</refsynopsisdiv>
<para>
<command>CREATE CONSTRAINT TRIGGER</command> is used within
<command>CREATE TABLE</command>/<command>ALTER TABLE</command> and by
- <application>pg_dump</application> to create the special triggers for
- referential integrity.
- It is not intended for general use.
- </para>
- </refsect1>
+ <application>pg_dump</application> to create the special triggers for
+ referential integrity.
+ It is not intended for general use.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Parameters</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><replaceable class="PARAMETER">name</replaceable></term>
+ <listitem>
+ <para>
+ The name of the constraint trigger. The actual name of the
+ created trigger will be of the form
+ <literal>RI_ConstraintTrigger_0000<literal> (where 0000 is some number
+ assigned by the server).
+ Use this assigned name is when dropping the constraint.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable class="PARAMETER">events</replaceable></term>
+ <listitem>
+ <para>
+ One of <literal>INSERT</literal>, <literal>UPDATE</literal>, or
+ <literal>DELETE</literal>; this specifies the event that will fire the
+ trigger. Multiple events can be specified using <literal>OR<literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable class="PARAMETER">table_name</replaceable></term>
+ <listitem>
+ <para>
+ The (possibly schema-qualified) name of the table in which
+ the triggering events occur.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable class="PARAMETER">referenced_table_name</replaceable></term>
+ <listitem>
+ <para>
+ The (possibly schema-qualified) name of the table referenced by the
+ constraint. Used by foreign key constraints triggers.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>DEFERRABLE</literal></term>
+ <term><literal>NOT DEFERRABLE</literal></term>
+ <term><literal>INITIALLY IMMEDIATE</literal></term>
+ <term><literal>INITIALLY DEFERRED</literal></term>
+ <listitem>
+ <para>
+ See the <xref linkend="SQL-CREATETABLE" endterm="SQL-CREATETABLE-TITLE">
+ documentation for details of these constraint options.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable class="PARAMETER">funcname</replaceable>(<replaceable class="PARAMETER">args</replaceable>)</term>
+ <listitem>
+ <para>
+ The function to call as part of the trigger processing. See <xref
+ linkend="SQL-CREATETRIGGER" endterm="SQL-CREATETRIGGER-TITLE"> for
+ details.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
<refsect1>
- <title>Parameters</title>
-
- <variablelist>
- <varlistentry>
- <term><replaceable class="PARAMETER">name</replaceable></term>
- <listitem>
- <para>
- The name of the constraint trigger.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable class="PARAMETER">events</replaceable></term>
- <listitem>
- <para>
- The event categories for which this trigger should be fired.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable class="PARAMETER">tablename</replaceable></term>
- <listitem>
- <para>
- The name (possibly schema-qualified) of the table in which
- the triggering events occur.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable class="PARAMETER">constraint</replaceable></term>
- <listitem>
- <para>
- Actual constraint specification.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable class="PARAMETER">attributes</replaceable></term>
- <listitem>
- <para>
- The constraint attributes.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable class="PARAMETER">funcname</replaceable>(<replaceable class="PARAMETER">args</replaceable>)</term>
- <listitem>
- <para>
- The function to call as part of the trigger processing.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
+ <title>Compatibility</title>
+ <para>
+ <command>CREATE CONTRAINT TRIGGER</command> is a
+ <productname>PostgreSQL</productname> extension of the <acronym>SQL</>
+ standard.
+ </para>
</refsect1>
-</refentry>
+
+ </refentry>
+