\dft
でトリガーを一覧表示できることはわかっています。しかし、どうすれば1つの具体的なトリガーを確認できますか?トリガーが実行されるイベント、実行される関数などの詳細を知りたい。
OK、私はそれについて自分で見つけました。
コマンド\dft
はトリガー自体を表示しません(私が思ったように)、すべてのトリガー関数(戻り型トリガー)を表示します。
\dS <tablename>
を作成できるトリガーを確認するには、このテーブルの列だけでなく、このテーブルで定義されているすべてのトリガーも表示します。
トリガー関数(または任意の関数)のソースを表示するには、\df+ <functionname>
を使用します。
Psqlコマンドにアクセスできない場合でも、次のコマンドを使用できます。
select pg_get_functiondef('functionname'::regproc);
以下を試すことができます:
SELECT event_object_table,trigger_name,event_manipulation,action_statement,action_timing FROM information_schema.triggers ORDER BY event_object_table,event_manipulation
または、次のように「testtable」という名前のテーブルのトリガーを表示できます。
SELECT event_object_table,trigger_name,event_manipulation,action_statement,action_timing FROM information_schema.triggers WHERE event_object_table='testtable' ORDER BY event_object_table,event_manipulation