psqlでトリガーの内容を表示するにはどうすればよいですか?


11

でトリガーをリストできることを知っています\dft。しかし、どのようにして具体的なトリガーを確認できますか?トリガーが実行されるイベント、実行される関数などの詳細を知りたい。

回答:


23

OK、私は自分でそれを知りました。

このコマンド\dftは、トリガー自体を表示しません(私が考えたように)、すべてのトリガー機能(戻りタイプのトリガー)を表示します。

作成できるトリガーを確認するには、\dS <tablename>このテーブルの列だけでなく、このテーブルで定義されているすべてのトリガーも表示します。

トリガー関数(または任意の関数)のソースを表示するには、を使用します\df+ <functionname>


1
より便利な読み取りには、\ ef <function_name>を使用します。
Brain90

6

psqlコマンドにアクセスできない場合でも、次を使用できます。

select pg_get_functiondef('functionname'::regproc);

1

以下を試すことができます:

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.