FirebirdSQL logo

Пространство имён DDL_TRIGGER

Использование пространства имён DDL_TRIGGER допустимо, только во время работы DDL триггера.Его использование также допустимо в хранимых процедурах и функциях, вызванных триггерами DDL.

Контекст DDL_TRIGGER работает как стек.Перед возбуждением DDL триггера, значения, относящиеся к выполняемой команде, помещаются в этот стек.После завершения работы триггера значения выталкиваются.Таким образом в случае каскадных DDL операторов, когда каждая пользовательская DDL команда возбуждает DDL триггер, и этот триггер запускает другие DDL команды, с помощью EXECUTE STATEMENT, значения переменных в пространстве имён DDL_TRIGGER будут соответствовать команде, которая вызвала последний DDL триггер в стеке вызовов.

Переменные пространства имён DDL_TRIGGER
EVENT_TYPE

тип события (CREATE, ALTER, DROP).

OBJECT_TYPE

тип объекта (TABLE, VIEW и др.).

DDL_EVENT

(<ddl event item>), где <ddl_event_item> это EVENT_TYPE || ' ' || OBJECT_TYPE

OBJECT_NAME

имя объекта метаданных.

OLD_OBJECT_NAME

имя объекта метаданных до переименования.

NEW_OBJECT_NAME

имя объекта метаданных после переименования.

SQL_TEXT

текст SQL запроса.

Note

Ещё раз обратите внимание на то, что пространства имён и имена переменных регистрочувствительны, должны быть не пустыми строками, и заключены в кавычки!

Примеры

Example 1. Использование функции RDB$GET_CONTEXT
NEW.USER_ADR = RDB$GET_CONTEXT ('SYSTEM', 'CLIENT_ADDRESS');
См. также:

RDB$SET_CONTEXT.