pg_trigger
pg_trigger
カタログはテーブルおよびビュー上のトリガを保存します。
CREATE TRIGGERを参照してください。
表52.56 pg_trigger
の列
名前 | 型 | 参照先 | 説明 |
---|---|---|---|
oid | oid | 行識別子(隠し属性です。明示的に選択しなければなりません) | |
tgrelid | oid |
| トリガのかかっているテーブル |
tgname | name | トリガ名(同一テーブル内で一意である必要があります) | |
tgfoid | oid |
| 呼び出される関数 |
tgtype | int2 | トリガ発行条件を指定するビットマスク | |
tgenabled | char |
どのsession_replication_roleモードでトリガが発行されるかを制御します。
O = 「起点」モードと「ローカル」モードでトリガを発行します,
D = トリガは無効です,
R = 「replica」モードでトリガを発行します,
A = 常にトリガを発行します.
| |
tgisinternal | bool |
トリガが(通常tgconstraint により識別される制約を強制するために)内部的に生成される場合は真。
| |
tgconstrrelid | oid |
| 参照整合性制約で参照されるテーブル |
tgconstrindid | oid |
| 一意性、主キー、参照整合性制約や排他制約をサポートするインデックス |
tgconstraint | oid |
| 存在する場合は、トリガに関連するpg_constraint の項目 |
tgdeferrable | bool | トリガが遅延可能である場合は真 | |
tginitdeferred | bool | トリガの初期状態が遅延可能と宣言されていれば真 | |
tgnargs | int2 | トリガ関数に渡される引数の数 | |
tgattr | int2vector |
| トリガが列固有であれば列番号。さもなくば空の配列 |
tgargs | bytea | トリガに渡される引数文字列で、それぞれヌル文字で終結 | |
tgqual | pg_node_tree |
トリガのWHEN 条件に関する(nodeToString() 表現による)式ツリー。
存在しなければNULL
| |
tgoldtable | name | OLD TABLE に対するREFERENCING 句の名前、なければNULL | |
tgnewtable | name | NEW TABLE に対するREFERENCING 句の名前、なければNULL |
現在、列固有のトリガ処理はUPDATE
イベントのみでサポートされていますので、tgattr
はこの種類のイベントにのみ関連します。
tgtype
にはこの他のイベント用のビットが含まれているかもしれませんが、これらはtgattr
の値とは関係ないテーブル全体のものであると仮定されます。
tgconstraint
がゼロではないとき、tgconstrrelid
、tgconstrindid
、tgdeferrable
、tginitdeferred
は参照されるpg_constraint
項目と共に冗長となっています。
しかし遅延不可能なトリガを遅延可能な制約に関連付けさせることが可能です。
外部キー制約では一部を遅延可能、一部を遅延不可能なトリガを持つことができます。
pg_class.relhastriggers
は、リレーションがこのカタログ内にトリガを持っている場合は真とならなければなりません。