Инструменты пользователя

Инструменты сайта


create_trigger

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
create_trigger [2008/12/23 23:13]
urandom
create_trigger [2008/12/23 23:17] (текущий)
Строка 1: Строка 1:
 +====== 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]]
 +
 +===== Формат =====
 +<​code>​
 +Для версии 1.5 и выше:
 +CREATE TRIGGER name FOR {table | view}
 +   ​[ACTIVE | INACTIVE]
 +   ​{BEFORE | AFTER} <​action_list>​
 +   ​[POSITION number]
 +   AS
 +   <​trigger_body>​
 +
 +<​action_list> ​ ::=  <​action>​ [OR <​action>​ [OR <​action>​]]
 +<​action> ​      ::​= ​ INSERT | UPDATE | DELETE
 +
 +Для версий ниже 1.5:
 +CREATE TRIGGER name FOR {table | view}
 +   ​[ACTIVE | INACTIVE]
 +   ​{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
 +   ​[POSITION number]
 +   AS
 +   <​trigger_body>​
 +</​code>​
 +
 +
 +^ Аргумент ^ Описание ^
 +|name                   ​|Имя создаваемого триггера.|
 +|ACTIVE ​                ​|Определяет,​ что действие триггера дает эффект,​ когда тот запускается (по умолчанию).|
 +|INACTIVE ​              ​|Определяет,​ что действие триггера не дает эффекта.|
 +|BEFORE ​                ​|Определяет,​ что триггер срабатывает перед ассоциированной операцией.|
 +|AFTER ​                 |Определяет,​ что триггер срабатывает после ассоциированной операции.|
 +|DELETE, INSERT, UPDATE |Определяет операцию над таблицей,​ при которой срабатывает триггер.|
 +|POSITION number ​       |Определяет порядок в котором срабатывают триггеры перед или после того же самого действия. number должен быть целым от 0 до 32767. Триггер с меньшим номером срабатывает раньше. Триггеры для того же самого действия,​ с тем же самым позиционным номером,​ будут запущены в случайном порядке.|
 +|trigger_body ​          ​|Тело триггера,​ блок инструкций на языке процедур и триггеров.|
 +|terminator ​            ​|Терминатор,​ определенный для ISQL командой [[SET TERM]], указывающий на конец тела триггера.|
 +
 +===== Описание =====
 +
 +Создает триггер,​ то есть блок [[raznovidnosti_jazyka_sql|PSQL]] кода, который выполняется автоматически перед или после изменения таблицы или отображения.
 +
 +
 +===== Пример =====
 +Триггер,​ использующий значения генератора,​ для значений поля, при вставке записей.
 +<code sql>
 +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 ;!!
 +</​code>​
 +
 +===== См. также =====
 +[[ALTER TRIGGER]], [[DROP TRIGGER]]
 +
 +===== Источник =====
 +[[http://​firebirdsql.org/​refdocs/​langrefupd20.html|Firebird 2.0 Language Ref. Update]]
create_trigger.txt · Последние изменения: 2008/12/23 23:17 (внешнее изменение)