pg_triggerカタログはテーブル上のトリガを保存します。より詳細はCREATE TRIGGERを参照してください。
表 44-35. pg_triggerの列
名前 | 型 | 参照先 | 説明 |
---|---|---|---|
tgrelid | oid | pg_class.oid | トリガのかかっているテーブル |
tgname | name | トリガ名(同一テーブル内で一意である必要があります) | |
tgfoid | oid | pg_proc.oid | 呼び出される関数 |
tgtype | int2 | トリガ条件を指定するビットマスク | |
tgenabled | char | Controls in which session_replication_role modes the trigger fires. O = "起点"モードと"ローカル"モードでトリガが起動します, D = トリガは無効です, R = "replica"モードでトリガが起動します, A = 常にトリガが起動します. | |
tgisconstraint | bool | トリガが"定数トリガ"である場合は真 | |
tgconstrname | name | 制約がトリガである場合は制約名 | |
tgconstrrelid | oid | pg_class.oid | 参照整合性制約で参照されるテーブル |
tgconstraint | oid | pg_constraint.oid | 存在する場合は、トリガを所有するpg_constraintエントリ |
tgdeferrable | bool | トリガがDEFERRED可能(トランザクション終了まで制約のチェックを行わない時は)である場合は真 | |
tginitdeferred | bool | トリガが始めにDEFFERABLEを宣言されていれば真 | |
tgnargs | int2 | トリガ関数に渡される引数の数 | |
tgattr | int2vector | 現在使われていません | |
tgargs | bytea | トリガに渡される引数文字列でNULL文字で終結 |
注意: tgconstraintがゼロではないとき、tgisconstraintは真でなくてはいけません。さらにtgconstrnameとtgconstrrelidとtgdeferrableとtginitdeferredは、参照されているpg_constraintエントリと共に冗長になっています。これらの属性を残した理由は、一致しないpg_constraintエントリの"スタンドアロン"制約トリガをサポートするためです。
pg_class.reltriggersは、与えられているリレーションのために、このテーブル内のトリガの数と一致しなければなりません。