<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/create_constraint.sgml,v 1.14 2006/09/16 00:30:17 momjian Exp $
PostgreSQL documentation
-->

<refentry id="SQL-CREATECONSTRAINT">
 <refmeta>
  <refentrytitle id="sql-createconstraint-title">CREATE CONSTRAINT TRIGGER</refentrytitle>
  <refmiscinfo>SQL - Language Statements</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>CREATE CONSTRAINT TRIGGER</refname>
  <refpurpose>define a new constraint trigger</refpurpose>
 </refnamediv>

 <indexterm zone="sql-createconstraint">
  <primary>CREATE CONSTRAINT</primary>
 </indexterm>

 <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> )
</synopsis>
 </refsynopsisdiv>

 <refsect1>
  <title>Description</title>

  <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>

 <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>
 </refsect1>
</refentry>
