Come posso mostrare il contenuto di un trigger con psql?


13

So di poter elencare i trigger con \dft. Ma come posso vedere un trigger concreto? Voglio conoscere dettagli come su quali eventi viene eseguito il trigger, su quale funzione viene eseguita e così via.

Risposte:


24

OK, l'ho scoperto da solo.

Il comando \dftnon mostra i trigger stessi (come pensavo), mostra tutte le funzioni trigger (trigger di tipo restituito).

Per vedere il trigger che puoi eseguire \dS <tablename>, mostra non solo le colonne di questa tabella, ma anche tutti i trigger definiti in questa tabella.

Per mostrare l'origine della funzione trigger (o qualsiasi altra funzione) utilizzare \df+ <functionname>.


1
Utilizzare \ ef <nome_funzione> per letture più convenienti.
Brain90,

7

Se non hai accesso ai comandi psql, puoi comunque usare:

select pg_get_functiondef('functionname'::regproc);

2

Puoi provare quanto segue:

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

oppure puoi mostrare i trigger di una tabella denominata 'testtable' in questo modo:

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.