¿Cómo puedo mostrar el contenido de un disparador con psql?


13

Sé que puedo enumerar los desencadenantes con \dft. Pero, ¿cómo puedo ver un disparador concreto? Quiero saber detalles sobre en qué eventos se ejecuta el activador, qué función se ejecuta, etc.

Respuestas:


24

OK, lo descubrí yo mismo.

El comando \dftno muestra los disparadores en sí mismo (como pensé), muestra todas las funciones de disparo (disparador de tipo retorno).

Para ver el desencadenante que puede realizar \dS <tablename>, muestra no solo las columnas de esta tabla, sino también todos los desencadenantes definidos en esta tabla.

Para mostrar la fuente de la función de disparo (o cualquier función) use \df+ <functionname>.


1
Use \ ef <nombre_función> para lecturas más convenientes.
Brain90

7

Si no tiene acceso a los comandos psql, aún puede usar:

select pg_get_functiondef('functionname'::regproc);

2

Puedes probar lo siguiente:

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

o puede mostrar los desencadenantes de una tabla llamada 'testtable' como esta:

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.