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.

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>.


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);

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.