====== CREATE TRIGGER ====== ===== Версии сервера ===== ^ 0.9 ^ 1.0 ^ 1.5.3 ^ 1.5.4 ^ 1.5.5 ^ 2.0 ^ 2.0.3 ^ 2.0.4 ^ 2.1 ^ 2.5 ^ 3.0 ^ | Да | Да| Да | Да | Да | Да | Да | Да | Да | ? | ? | ===== Доступно в ===== [[raznovidnosti_jazyka_sql|DSQL]] [[raznovidnosti_jazyka_sql|ESQL]] ===== Формат ===== Для версии 1.5 и выше: CREATE TRIGGER name FOR {table | view} [ACTIVE | INACTIVE] {BEFORE | AFTER} [POSITION number] AS ::= [OR [OR ]] ::= INSERT | UPDATE | DELETE Для версий ниже 1.5: CREATE TRIGGER name FOR {table | view} [ACTIVE | INACTIVE] {BEFORE | AFTER} {INSERT | UPDATE | DELETE} [POSITION number] AS ^ Аргумент ^ Описание ^ |name |Имя создаваемого триггера.| |ACTIVE |Определяет, что действие триггера дает эффект, когда тот запускается (по умолчанию).| |INACTIVE |Определяет, что действие триггера не дает эффекта.| |BEFORE |Определяет, что триггер срабатывает перед ассоциированной операцией.| |AFTER |Определяет, что триггер срабатывает после ассоциированной операции.| |DELETE, INSERT, UPDATE |Определяет операцию над таблицей, при которой срабатывает триггер.| |POSITION number |Определяет порядок в котором срабатывают триггеры перед или после того же самого действия. number должен быть целым от 0 до 32767. Триггер с меньшим номером срабатывает раньше. Триггеры для того же самого действия, с тем же самым позиционным номером, будут запущены в случайном порядке.| |trigger_body |Тело триггера, блок инструкций на языке процедур и триггеров.| |terminator |Терминатор, определенный для ISQL командой [[SET TERM]], указывающий на конец тела триггера.| ===== Описание ===== Создает триггер, то есть блок [[raznovidnosti_jazyka_sql|PSQL]] кода, который выполняется автоматически перед или после изменения таблицы или отображения. ===== Пример ===== Триггер, использующий значения генератора, для значений поля, при вставке записей. set term !!; create trigger gen_reader_id_trg for reader before insert as begin new.reader_id = gen_id(gen_reader_id, 1); end!! set term ;!! ===== См. также ===== [[ALTER TRIGGER]], [[DROP TRIGGER]] ===== Источник ===== [[http://firebirdsql.org/refdocs/langrefupd20.html|Firebird 2.0 Language Ref. Update]]