FirebirdSQL logo

NEW

Доступно в

PSQL

Синтаксис
NEW

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

В AFTER триггерах переменная доступна только для чтения.

Note

Для табличных триггеров, срабатывающих на несколько типов событий, переменная NEW доступна всегда.Однако в случае если триггер сработал на операцию удаления, то для него новая версия данных не имеет смысла.В этой ситуации чтение переменной NEW всегда вернёт NULL.

Important

Попытка записи в переменную NEW в AFTER триггере вызовет исключение в коде.

Example 1. Использование переменной NEW
...
  IF (NEW.SERIAL_NUM IS NULL) THEN
    NEW.SERIAL_NUM = GEN_ID (GEN_SERIALS, 1);
...
См. также:

[fblangref-contextvars-old].

OLD

Доступно в

PSQL

Синтаксис
OLD

Контекстная переменная OLD доступна только коде триггеров.Значения, содержащееся в OLD, хранит прошлые значения полей, которые были в базе до операции изменения или удаления.

Переменная OLD доступна только для чтения.

Note

Для табличных триггеров, срабатывающих на несколько типов событий, значения для переменной OLD всегда возможны.Однако для триггеров, сработавших на вставку записи, значение данной переменной не имеет смысла, поэтому в этой ситуации чтение OLD возвратит NULL, а попытка записи в неё вызовет исключение в коде.

Example 1. Использование переменной OLD
...
  IF (NEW.QUANTITY IS DISTINCT FROM OLD.QUANTITY) THEN
    DELTA = NEW.QUANTITY - OLD.QUANTITY;
...
См. также:

[fblangref-contextvars-new].