CREATE CONSTRAINT TRIGGER(7)

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

SYNOPSIS

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 [set_constraints(7)]を使用して調整できる点を除き、通常のトリガと同じです。 制約トリガは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 [create_table(7)]を参照してください。

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

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

互換性

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

関連項目
CREATE TRIGGER [create_trigger(7)], DROP TRIGGER [drop_trigger(7)], SET CONSTRAINTS [set_constraints(7)]