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

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


inserting_updating_deleting

Различия

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

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

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
inserting_updating_deleting [2008/05/26 22:02]
193.110.114.140
inserting_updating_deleting [2009/01/09 14:16] (текущий)
Строка 1: Строка 1:
 +
 +====== INSERTING, UPDATING, DELETING ======
  
 +
 +
 +===== Версии сервера =====
 +^ 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|PSQL]]
 +
 +
 +===== Формат =====
 +<​code>​
 +INSERTING
 +UPDATING
 +DELETING
 +</​code>​
 +
 +===== Описание =====
 +Псевдологические переменные INERTING, UPDATING, DELETING доступны __только__ внутри текста триггеров и служат для определения текущего контекста действия триггера. Эти переменные могут быть полезны для триггеров,​ вызываемых одновременно при вставке,​ изменении или удалении данных.
 +
 +
 +===== Пример =====
 +Следующий пример показывает,​ как вести учет версии записи при помощи триггера перед вставкой или изменением записи. В момент вставки записи начальное значение домена VERSION_NUMBER таблицы VERSIONEDTABLE инициализируется нулем. Затем, при последующих изменениях записи,​ новое значение домена получается инкрементом старого.
 +<code sql>
 +SET TERM !!!;
 +
 +CREATE TRIGGER SET_VERSION_NUMBER_BIU_0 FOR VERSIONEDTABLE
 +ACTIVE BEFORE INSERT OR UPDATE POSITION 0
 +AS
 +BEGIN
 +  IF (INSERTING) THEN
 +    NEW.VERSION_NUMBER = 0;
 +  ELSE
 +    IF (UPDATING) THEN
 +      NEW.VERSION_NUMBER = OLD.VERSION_NUMBER + 1;
 +END
 +!!!
 +
 +SET TERM; !!!
 +</​code>​
 +
 +
 +===== См. также =====
 +[[new_old|OLD]],​ [[new_old|NEW]],​ [[SET TERM]], [[CREATE TRIGGER]], [[ALTER TRIGGER]], [[RDB$TRIGGERS]]
 +
 +===== Источник =====
 +Firebird 1.5 Release Notes
inserting_updating_deleting.txt · Последние изменения: 2009/01/09 14:16 (внешнее изменение)