DDL триггеры
DDL триггеры срабатывают на указанные события изменения метаданных в одной из фаз события.BEFORE
триггеры запускаются до изменений в системных таблицах.AFTER
триггеры запускаются после изменений в системных таблицах.
DDL триггеры срабатывают на указанные события изменения метаданных в одной из фаз события.BEFORE
триггеры запускаются до изменений в системных таблицах.AFTER
триггеры запускаются после изменений в системных таблицах.
Во время работы DDL триггера доступно пространство имён DDL_TRIGGER
для использования в функции RDB$GET_CONTEXT
.Его использование также допустимо в хранимых процедурах и функциях, вызванных DDL триггерами.
Контекст DDL_TRIGGER
работает как стек.Перед возбуждением DDL триггера, значения, относящиеся к выполняемой команде, помещаются в этот стек.После завершения работы триггера значения выталкиваются.Таким образом, в случае каскадных DDL операторов, когда каждая пользовательская DDL команда возбуждает DDL триггер, и этот триггер запускает другие DDL команды, с помощью EXECUTE STATEMENT
, значения переменных в пространстве имен DDL_TRIGGER будут соответствовать команде, которая вызвала последний DDL триггер в стеке вызовов.
OBJECT_TYPE — тип объекта (TABLE, VIEW и д.р.)
DDL_EVENT — имя события (<ddl event item>
),
где <ddl event item>
= EVENT_TYPE || ' ' || OBJECT_TYPE
OBJECT_NAME — имя объекта метаданных
SQL_TEXT — текст SQL запроса