@Melnik228

Есть ли в триггерах уровня оператора переменные наподобие NEW и OLD?

NEW
Тип данных RECORD. Переменная содержит новую строку базы данных для команд INSERT/UPDATE в триггерах уровня строки. В триггерах уровня оператора и для команды DELETE этой переменной значение не присваивается.

OLD
Тип данных RECORD. Переменная содержит старую строку базы данных для команд UPDATE/DELETE в триггерах уровня строки. В триггерах уровня оператора и для команды INSERT этой переменной значение не присваивается.

есть ли что-то подобное для триггеров уровня оператора? чтобы в какой-то переменной все затронутые строки хранились?
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 1
@galaxy
Да, для AFTER STATEMENT триггеров есть:
CREATE TRIGGER transfer_insert
    AFTER UPDATE ON transfer
    REFERENCING NEW TABLE AS newtab OLD TABLE AS oldtab
    FOR EACH STATEMENT
    EXECUTE FUNCTION check_transfer_balances_to_zero();

В функции check_transfer_balances_to_zero будут доступны таблицы newtab и oldtab.

(Согласно документации указывать REFERENCING можно и для ROW триггеров. Как в этом случае оно работает, не знаю)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы