プログラミング

【2021年最新版】PostgreSQLでトリガーの情報を一覧で取得する方法

2020年9月28日

先生、PostgreSQLでトリガーを使ってる箇所を一覧で取得する方法ってありませんか。

SQLで簡単に取得することができるよ。サンプルのSQLを紹介します。

トリガーの確認方法

トリガー関連の情報を取得するには以下の3つのテーブルを組み合わせます。

  1. infoschema-triggers
  2. pg_trigger
  3. pg_proc

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 トリガーが設定されているスキーマ

-プログラミング
-,