Я хотел бы знать, какие таблицы хранит создать заявление триггера, напримерPostgres триггеры
CREATE TRIGGER t_update_sal
AFTER INSERT OR UPDATE
ON employees
FOR EACH ROW
EXECUTE PROCEDURE t_update_sal_v1();
Я хотел бы знать, какие таблицы хранит создать заявление триггера, напримерPostgres триггеры
CREATE TRIGGER t_update_sal
AFTER INSERT OR UPDATE
ON employees
FOR EACH ROW
EXECUTE PROCEDURE t_update_sal_v1();
information_schema.triggers
только хранит часть определения триггера.
Вы можете получить полный SQL для запуска с помощью pg_get_triggerdef()
:
select trg.tgname,
pg_catalog.pg_get_triggerdef(trg.oid, true)
from pg_trigger trg
join pg_class tbl on trg.tgrelid = tbl.oid
join pg_namespace sch on tbl.relnamespace = sch.oid
where tbl.relname = 'employees'
and sch.nspname = 'public'
order by 1;
Вы можете выкопать эту информацию на information_schema.triggers
.
Нет таблицы, в которой хранится «инструкция создания» для триггера как такового. SQL анализируется, выполняется и отбрасывается.
pg_dump
повторно строит выписку из системы каталогов: в первую очередь pg_catalog.pg_trigger
, с дополнительной информацией, извлеченной из pg_class
, pg_attribute
, pg_namespace
и т.д.
Как Soni указывает, есть удобный интерфейс для этого в information_schema.triggers
вид.
спасибо вот что я искал – user2594853