义齿


トリガは、特定のタイプの操作を実行するときに、データベースが自動的に特殊な関数を実行する必要があることを宣言します.トリガは、テーブル、ビュー、および外部テーブルにアタッチできます.トリガは、整数制約、またはビジネス・ルールの制約を完了するためによく使用されます.
1.トリガの作成構文は次のとおりです.
 
CREATE [CONSTRAINT] TRIGGER name 
{ BEFORE | AFTER | INSTEAD OF } { event [ OR ...] } 
ON table_name
[ FROM referenced_table_name ]
{[ NOT DEFERRABLE ][ DEFERRABLE ]{[ INITIALLY IMMEDIATE ][ INITIALLY DEFERRED]}} 
[ FOR [ EACH ] { ROW | STATEMENT } ]
[ WHEN (condition) ]
EXECUTE PROCEDURE function_name ( arguments )

 
2.トリガの作成手順は次のとおりです.
 
トリガの実行関数を作成し、戻りタイプをトリガタイプにしてから、対応するトリガを作成します.
3.トリガの分類は以下の通りである.
(1)文レベルトリガ:1つのSQL文で、トリガは1回しか実行されず、ゼロ行データのSQLを変更しても、対応するトリガが実行されます.
(2)行レベルトリガ:行ごとに変化し、トリガが1回実行される.
(3)BEFOREトリガ:イベントをトリガする前にトリガを実行する.
(4)AFTERトリガ:トリガイベントの後にトリガを実行する.
4.トリガの特定の変数は次のとおりです.
(1)NEW
データ型はRECORDです.この変数は、行レベルフリップフロップのINSERT/UPDATE操作で新しいデータ行を保持します.この変数は、文レベルのトリガおよびDELETE操作では割り当てられていません.
(2)OLD
データ型はRECORDです.この変数は、行レベルフリップフロップのUPDATE/DELETE操作で新しいデータ行を保持します.この変数は、文レベルのトリガおよびINSERT操作では割り当てられていません.
(3)TG_NAME
データ型はnameです.この変数には、実際にトリガーされたトリガ名が含まれます.
(4)TG_WHEN
データ型はtextです.は、トリガの定義に応じてBEFORE、AFTER、INSTEADOFの値を持つ文字列です.
(5)TG_LEVEL
データ型はtextです.トリガの定義に応じて、ROWまたはSTATEMENTの値を持つ文字列です.
(6)TG_OP
データ型はtextです.INSERT、UPDATE、DELETE、TRUNCATEの値を持つ文字列です.トリガがどの操作によって開始されたかを示します.
(7)TG_RELID
データ型はoidです.トリガ呼び出しの原因となるテーブルのオブジェクトIDです.
(8)TG_RELNAME
データ型はnameです.は、トリガ呼び出しの原因となるテーブルの名前です.現在は廃棄されており、将来のリリースで消える可能性があります.TG_の使用TABLE_NAME代替.
(9)TG_TABLE_NAME
データ型はnameです.は、トリガ呼び出しの原因となるテーブルの名前です.
(10)TG_TABLE_SCHEMA
データ型はnameです.は、トリガ呼び出しの原因となるテーブルが存在するスキーマ名です.
(11)TG_NARGS
データ型はintegerです.CREATE TRIGGER文でトリガ・プロシージャに与えられるパラメータの数.
(12)TG_ARGV[]
データ型はtext配列です.CREATE TRIGGER文からのパラメータ.インデックス0から記数を開始します.不正なインデックス(0以下またはtg_nargs以上)は、空の値を返します.
クリックするとリンク元のアドレスが開きます
http://blog.csdn.net/iihero/article/details/8218753