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

7

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

    
por Mnementh 15.11.2011 / 10:41

3 respostas

17

OK, eu mesmo descobri isso.

O comando \dft não mostra os gatilhos em si (como eu pensei), ele mostra todas as funções do gatilho (trigger do tipo return).

Para ver o acionador que você pode fazer com \dS <tablename> , ele mostra não apenas as colunas dessa tabela, mas também todos os acionadores definidos nesta tabela.

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

    
por 15.11.2011 / 11:06
3

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

select pg_get_functiondef('functionname'::regproc);
    
por 27.04.2012 / 08:20
0

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
    
por 14.01.2013 / 02:20