Я знаю, что могу перечислить триггеры с помощью \dft
. Но как я могу увидеть один конкретный триггер? Я хочу знать подробности, например, по каким событиям запускается триггер, какая функция выполняется и так далее.
Хорошо, я сам узнал об этом.
Команда \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