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

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


new_old

Различия

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

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

new_old [2008/05/19 10:14] (текущий)
Строка 1: Строка 1:
 +====== NEW, OLD ======
 +
 +
 +
 +===== Версии сервера =====
 +^ 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>​
 +NEW.< имя столбца >
 +OLD.< имя столбца >
 +</​code>​
 +
 +===== Описание =====
 +Контекстные псевдообъектные переменные NEW и OLD доступны __только__ внутри текста триггеров и служат для обращения соответственно к новым и к старым значениям столбцов записи через точечную нотацию.
 +
 +
 +===== Пример =====
 +Следующий пример показывает,​ как при помощи контекстной переменной NEW организовывается автоинкрементное значение первичного ключа ID таблицы MYTABLE.
 +<code sql>
 +SET TERM !!!;
 +
 +CREATE TRIGGER MYTABLE_BI_000 FOR MYTABLE
 +ACTIVE BEFORE INSERT POSITION 0
 +AS
 +BEGIN
 +  IF (NEW.ID IS NULL) THEN
 +    NEW.ID = GEN_ID(GENR_MYTABLE_ID,​ 1);
 +END
 +!!!
 +
 +SET TERM; !!!
 +</​code>​
 +
 +Следующий пример заставляет при изменении значения столбца FLAG выполнять процедуру MY_PROC
 +<code sql>
 +SET TERM !!!;
 +
 +CREATE TRIGGER MYTABLE_BU_010 FOR MYTABLE
 +ACTIVE BEFORE UPDATE POSITION 10
 +AS
 +BEGIN
 +  IF (NEW.FLAG <> OLD.FLAG) THEN
 +    EXECUTE PROCEDURE MYPROC(NEW.FLAG);​
 +END
 +!!!
 +
 +SET TERM; !!!
 +</​code>​
 +
 +
 +===== См. также =====
 +[[GEN_ID()]],​ [[INSERTING,​ UPDATING, DELETING]], [[SET TERM]], [[CREATE TRIGGER]], [[ALTER TRIGGER]]
 +
 +===== Источник =====
  
new_old.txt · Последние изменения: 2008/05/19 10:14 (внешнее изменение)