45.42. pg_trigger

pg_triggerカタログはテーブルおよびビュー上のトリガを保存します。 CREATE TRIGGERを参照してください。

表 45-42. pg_triggerの列

名前参照先説明
tgrelidoidpg_class.oidトリガのかかっているテーブル
tgnamename トリガ名(同一テーブル内で一意である必要があります)
tgfoidoidpg_proc.oid呼び出される関数
tgtypeint2 トリガ発行条件を指定するビットマスク
tgenabledchar どのsession_replication_roleモードでトリガが発行されるかを制御します。 O = "起点"モードと"ローカル"モードでトリガを発行します, D = トリガは無効です, R = "replica"モードでトリガを発行します, A = 常にトリガを発行します.
tgisinternalbool トリガが(通常tgconstraintにより識別される制約を強制するために)内部的に生成される場合は真。
tgconstrrelidoidpg_class.oid参照整合性制約で参照されるテーブル
tgconstrindidoidpg_class.oid一意性、プライマリキー、参照整合性制約をサポートするインデックス
tgconstraintoidpg_constraint.oid存在する場合は、トリガに関連するpg_constraintの項目
tgdeferrablebool トリガが遅延可能である場合は真
tginitdeferredbool トリガの初期状態が遅延可能と宣言されていれば真
tgnargsint2 トリガ関数に渡される引数の数
tgattrint2vectorpg_attribute.attnumトリガが列固有であれば列番号。さもなくば空の配列
tgargsbytea トリガに渡される引数文字列で、それぞれヌル文字で終結
tgqualpg_node_tree トリガのWHEN条件に関する(nodeToString()表現による)式ツリー。 存在しなければNULL

現在、列固有のトリガ処理はUPDATEイベントのみでサポートされていますので、tgattrはこの種類のイベントにのみ関連します。 tgtypeにはこの他のイベント用のビットが含まれているかもしれませんが、これらはtgattrの値とは関係ないテーブル全体のものであると仮定されます。

注意: tgconstraintがゼロではないとき、tgconstrrelidtgconstrindidtgdeferrabletginitdeferredは参照されるpg_constraint項目と共に冗長となっています。 しかし遅延不可能なトリガを遅延可能な制約に関連付けさせることが可能です。 外部キー制約では一部を遅延可能、一部を遅延不可能なトリガを持つことができます。

pg_class.reltriggersは、リレーションがこのカタログ内にトリガを持っている場合は真とならなければなりません。