pg_triggerカタログはテーブル上のトリガを保存します。より詳細はCREATE TRIGGERを参照してください。
表 44-36. 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は、テーブルがカタログ内にトリガを持っている場合は真とならなければなりません。