CREATE CONSTRAINT TRIGGER name AFTER event [ OR ... ] ON table_name [ FROM referenced_table_name ] { NOT DEFERRABLE | [ DEFERRABLE ] { INITIALLY IMMEDIATE | INITIALLY DEFERRED } } FOR EACH ROW [ WHEN ( condition ) ] EXECUTE PROCEDURE function_name ( arguments )
CREATE CONSTRAINT TRIGGERは制約トリガを作成します。 これは、トリガの発生タイミングをSET CONSTRAINTSを使用して調整できる点を除き、通常のトリガと同じです。 制約トリガはAFTER ROWトリガでなければなりません。 これは、トリガイベントを引き起こす文の終わり、または、その文を含むトランザクションの終わりのいずれかに発生することができます。 後者の場合、これは遅延されたと言われます。 遅延されたトリガ発行を待機することを、SET CONSTRAINTSを使用して強制的に、即座に発生させることもできます。
制約トリガの名前です。 これは、SET CONSTRAINTSを使用してトリガの動作を変更する時に使用される名前でもあります。 この名前はスキーマで修飾することはできません。 トリガはテーブルのスキーマを継承します。
INSERT、UPDATE、DELETEのいずれかです。 これはトリガを発行するイベントを指定するものです。 ORを使用して複数のイベントを指定することができます。
トリガイベントが発生するテーブルの名前です(スキーマ修飾可)。
この制約により参照されるテーブルの名前です(スキーマ修飾可)。 このオプションは外部キー制約トリガによって使用されるもので、通常使用することは推奨されません。
トリガ発行タイミングのデフォルトです。 これらの制約オプションについてはCREATE TABLEを参照してください。
トリガ関数が実際に実行されるか否かを決定する論理式です。 これはCREATE TRIGGERと同様の動作を行います。 特にWHEN条件の評価が遅延されずに、行の更新操作が行われた長後に行われることに注意して下さい。 条件の評価結果がtrueでなければ、トリガは遅延実行用のキューに保持されません。
トリガが発行された場合に呼び出される関数です。 CREATE TRIGGERを参照してください。
トリガ関数に渡す引数文字列で、省略可能です。 CREATE TRIGGERを参照してください。