PostgreSQL 8.4.1文書
前のページ | 巻戻し |  | 早送り | 次のページ

# CREATE CONSTRAINT TRIGGER

## 名前

CREATE CONSTRAINT TRIGGER -- 新しい制約トリガを定義する

## 概要

    CREATE CONSTRAINT TRIGGER name
        AFTER event [ OR ... ]
        ON table_name
        [ FROM referenced_table_name ]
        { NOT DEFERRABLE | [ DEFERRABLE ] { INITIALLY IMMEDIATE | INITIALLY DEFERRED } }
        FOR EACH ROW
        EXECUTE PROCEDURE funcname ( arguments )

## 説明

`CREATE CONSTRAINT TRIGGER`は制約トリガを作成します。 これは、トリガの発生タイミングをSET CONSTRAINTSを使用して調整できる点を除き、通常のトリガと同じです。 制約トリガは`AFTER ROW`トリガでなければなりません。 これは、トリガイベントを引き起こす文の終わり、または、その文を含むトランザクションの終わりのいずれかに発生することができます。 後者の場合、これは遅延されたと言われます。 遅延されたトリガ発行を待機することを、`SET CONSTRAINTS`を使用して強制的に、即座に発生させることもできます。

## パラメータ

`name`

  制約トリガの名前です。 これは、`SET CONSTRAINTS`を使用してトリガの動作を変更する時に使用される名前でもあります。 この名前はスキーマで修飾することはできません トリガはテーブルのスキーマを継承します。

`event`

  `INSERT`、`UPDATE`、`DELETE`のいずれかです。 これはトリガを発行するイベントを指定するものです。 `OR`を使用して複数のイベントを指定することができます。

`table_name`

  トリガイベントが発生するテーブルの名前です（スキーマ修飾可）。

`referenced_table_name`

  この制約により参照されるテーブルの名前です（スキーマ修飾可）。 このオプションは外部キー制約トリガによって使用されるもので、通常使用することは推奨されません。

`DEFERRABLE`
`NOT DEFERRABLE`
`INITIALLY IMMEDIATE`
`INITIALLY DEFERRED`

  トリガ発行タイミングのデフォルトです。 これらの制約オプションについてはCREATE TABLEを参照してください。

`funcname`

  トリガが発行された場合に呼び出される関数です。 CREATE TRIGGERを参照してください。

`arguments`

  トリガ関数に渡す引数文字列で、省略可能です。 CREATE TRIGGERを参照してください。

## 互換性

`CREATE CONTRAINT TRIGGER`は、標準SQLに対するPostgreSQLの拡張です。

## 関連項目

CREATE TRIGGER, DROP TRIGGER, SET CONSTRAINTS

前のページ | ホーム | 次のページ
CREATE CAST | 上に戻る | CREATE CONVERSION