Jak mogę wyświetlić zawartość wyzwalacza za pomocą psql?


13

Wiem, że mogę wymienić czynniki uruchamiające \dft. Ale jak mogę zobaczyć jeden konkretny czynnik uruchamiający? Chcę poznać szczegóły, takie jak zdarzenia, które wyzwalacz jest wykonywany, która funkcja jest wykonywana i tak dalej.

Odpowiedzi:


24

OK, sam się o tym dowiedziałem.

Polecenie \dftnie pokazuje samych wyzwalaczy (jak myślałem), pokazuje wszystkie funkcje wyzwalaczy (wyzwalacz typu powrotnego).

Aby zobaczyć wyzwalacz, który możesz wykonać \dS <tablename>, pokazuje nie tylko kolumny tej tabeli, ale także wszystkie wyzwalacze zdefiniowane w tej tabeli.

Aby wyświetlić źródło funkcji wyzwalacza (lub dowolnej funkcji), użyj \df+ <functionname>.


1
Użyj \ ef <nazwa_funkcji> dla wygodniejszych odczytów.
Brain90

7

Jeśli nie masz dostępu do poleceń psql, nadal możesz użyć:

select pg_get_functiondef('functionname'::regproc);

2

Możesz spróbować:

SELECT event_object_table,trigger_name,event_manipulation,action_statement,action_timing FROM information_schema.triggers ORDER BY event_object_table,event_manipulation

lub możesz wyświetlić wyzwalacze tabeli o nazwie „testtable” w następujący sposób:

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.