Como posso mostrar o conteúdo de um gatilho com o psql?

11

Eu sei que posso listar os gatilhos com \dft. Mas como posso ver um gatilho concreto? Quero saber detalhes sobre quais eventos o gatilho é executado, qual função é executada e assim por diante.

Mnementh
fonte

Respostas:

23

OK, eu mesmo descobri.

O comando \dftnão mostra os gatilhos em si (como eu pensava), mostra todas as funções de gatilho (gatilho do tipo retorno).

Para ver o gatilho que você pode criar \dS <tablename>, ele mostra não apenas as colunas desta tabela, mas também todos os gatilhos definidos nesta tabela.

Para mostrar a fonte da função de disparo (ou qualquer função) use \df+ <functionname>.

Mnementh
fonte
1
Use \ ef <nome_da_função> para leituras mais convenientes.
Brain90
6

Se você não tiver acesso aos comandos psql, ainda poderá usar:

select pg_get_functiondef('functionname'::regproc);
jlfenaux
fonte
1

Você pode tentar o seguinte:

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

ou você pode mostrar gatilhos de uma tabela chamada 'testtable' assim:

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
gdarcan
fonte