Як я можу показати вміст тригера за допомогою psql?


13

Я знаю, що можу перерахувати тригери \dft. Але як я бачу один конкретний тригер? Я хочу знати деталі, на зразок яких подій виконується тригер, яка функція виконується тощо.

Відповіді:


24

Добре, я про це дізнався сам.

Команда \dftне показує самі тригери (як я думав), вона показує всі тригерні функції (тригер повернення типу).

Щоб побачити тригер, який ви можете зробити \dS <tablename>, він показує не тільки стовпці цієї таблиці, але і всі тригери, визначені в цій таблиці.

Щоб показати джерело тригерної функції (або будь-яку функцію), використовуйте \df+ <functionname>.


1
Використовуйте \ ef <назва функції> для більш зручного читання.
Brain90

7

Якщо у вас немає доступу до команд psql, ви все одно можете використовувати:

select pg_get_functiondef('functionname'::regproc);

2

Ви можете спробувати наступне:

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

або ви можете показати тригери таблиці з назвою "testtable", як це:

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.