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;