trigger一覧を表示

oracleだったら分かるのですが、postgreSQLになるとすぐSQLが思いつかなかったorz
Oracleなら

select * from user_objects where object_type = 'TRIGGER';

postgreSQLでtrigger情報を取得するには


pg_triggerシステムカタログを参照する。

名前 参照先 説明
tgrelid oid pg_class.oid トリガのかかっているテーブル
tgname name   トリガ名(同一テーブル内で一意である必要があります)
tgfoid oid pg_proc.oid 呼び出される関数
tgtype int2   トリガ条件を指定するビットマスク
tgenabled bool   トリガが動作できる場合は真(現時点では、端から端まで検証をしていないため、ここを僞に設定してトリガが作動しないようにしてもその通りになる保証はありません。)
tgisconstraint bool   トリガが参照整合性制約を実装する場合は真
tgconstrname name   参照整合性制約名
tgconstrrelid oid pg_class.oid 参照整合性制約で参照されるテーブル
tgdeferrable bool   DEFERRED 可能(トランザクション終了まで制約のチェックを行わない時は)真
tginitdeferred bool   初めに DEFFERABLE を宣言されていれば真
tgnargs int2   トリガ関数に渡される引数の数
tgattr int2vector   現在使われていません。
tgargs bytea   トリガに渡される引数文字列で NULL 文字で終結
testdb=# \d+ pg_trigger
                  Table "pg_trigger"
     Column     |    Type    | Modifiers | Description
----------------+------------+-----------+-------------
 tgrelid        | oid        |           |
 tgname         | name       |           |
 tgfoid         | oid        |           |
 tgtype         | smallint   |           |
 tgenabled      | boolean    |           |
 tgisconstraint | boolean    |           |
 tgconstrname   | name       |           |
 tgconstrrelid  | oid        |           |
 tgdeferrable   | boolean    |           |
 tginitdeferred | boolean    |           |
 tgnargs        | smallint   |           |
 tgattr         | int2vector |           |
 tgargs         | bytea      |           |
Indexes: pg_trigger_tgconstrname_index,
         pg_trigger_tgconstrrelid_index,
         pg_trigger_tgrelid_index
Unique keys: pg_trigger_oid_index
testdb=# select * from pg_trigger;