pg_trigger

PostgreSQL 9.1.1文書
前のページ | 巻戻し | 第 45章システムカタログ | 早送り | 次のページ

# 45.42. `pg_trigger`

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

表 45-42. `pg_trigger`の列

名前 | 型 | 参照先 | 説明
--- | --- | --- | ---
`tgrelid` | `oid` | ``pg_class`.oid` | トリガのかかっているテーブル
`tgname` | `name` |  | トリガ名（同一テーブル内で一意である必要があります）
`tgfoid` | `oid` | ``pg_proc`.oid` | 呼び出される関数
`tgtype` | `int2` |  | トリガ発行条件を指定するビットマスク
`tgenabled` | `char` |  | どのsession_replication_roleモードでトリガが発行されるかを制御します。 `O` = "起点"モードと"ローカル"モードでトリガを発行します, `D` = トリガは無効です, `R` = "replica"モードでトリガを発行します, `A` = 常にトリガを発行します.
`tgisinternal` | `bool` |  | トリガが(通常`tgconstraint`により識別される制約を強制するために)内部的に生成される場合は真。
`tgconstrrelid` | `oid` | ``pg_class`.oid` | 参照整合性制約で参照されるテーブル
`tgconstrindid` | `oid` | ``pg_class`.oid` | 一意性、プライマリキー、参照整合性制約をサポートするインデックス
`tgconstraint` | `oid` | ``pg_constraint`.oid` | 存在する場合は、トリガに関連する`pg_constraint`の項目
`tgdeferrable` | `bool` |  | トリガが遅延可能である場合は真
`tginitdeferred` | `bool` |  | トリガの初期状態が遅延可能と宣言されていれば真
`tgnargs` | `int2` |  | トリガ関数に渡される引数の数
`tgattr` | `int2vector` | ``pg_attribute`.attnum` | トリガが列固有であれば列番号。さもなくば空の配列
`tgargs` | `bytea` |  | トリガに渡される引数文字列で、それぞれヌル文字で終結
`tgqual` | `pg_node_tree` |  | トリガの`WHEN`条件に関する(`nodeToString()`表現による)式ツリー。 存在しなければNULL

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

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

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

前のページ | ホーム | 次のページ
`pg_tablespace` | 上に戻る | `pg_ts_config`