如何使用psql显示触发器的内容?


13

我知道我可以使用列出触发器\dft。但是,我怎么能看到一个具体的触发器?我想知道一些细节,例如执行触发器的事件,执行函数的时间等等。

Answers:


24

好的,我自己知道了。

该命令\dft没有显示触发器本身(如我所想),而是显示了所有触发器功能(返回类型触发器)。

要查看可以创建的触发器\dS <tablename>,它不仅显示此表的列,还显示此表上定义的所有触发器。

要显示触发功能(或任何功能)的来源,请使用\df+ <functionname>


1
使用\ ef <function_name>可以更方便地阅读。
Brain90 '16

7

如果您无权访问psql命令,则仍然可以使用:

select pg_get_functiondef('functionname'::regproc);

2

您可以尝试以下操作:

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.