先生、PostgreSQLでトリガーを使ってる箇所を一覧で取得する方法ってありませんか。
SQLで簡単に取得することができるよ。サンプルのSQLを紹介します。
トリガーの確認方法
トリガー関連の情報を取得するには以下の3つのテーブルを組み合わせます。
trigger情報取得SQL
select
t.tgname as Name
, t2.event_object_table as Table
, t2.event_manipulation as Event
, p.proname as Function
, t2.event_object_catalog as DB
, t2.event_object_schema as Schema
from
pg_trigger t
left join pg_proc p
on t.tgfoid = p.oid
left join information_schema.triggers t2
on
t.tgname = t2.trigger_name
;
このSQLで以下の情報を取得できます。
項目名 | 説明 |
---|---|
Name | トリガーの名前 |
Table | トリガーが定義されたテーブル |
Event | トリガー発砲されるイベント(INSERT / UPDATE / DELETE) |
Function | トリガーで実行される関数 |
DB | トリガーが設定されているDB |
Schema | トリガーが設定されているスキーマ |