триггер db2 insert new недопустим

#database #plsql #triggers #db2 #database-trigger

#База данных #plsql #триггеры #db2 #база данных-триггер

Вопрос:

Я определил этот триггер:

 --#SET TERMINATOR @
CREATE TRIGGER actualizarSaldoIngreso
BEFORE INSERT ON Ingreso
FOR EACH ROW MODE DB2SQL
BEGIN
    UPDATE Cuenta SET Saldo = Saldo   NEW.Cantidad WHERE IBAN = NEW.Cuenta_IBAN;
END@
--#SET TERMINATOR ;
  

Но db2 возвращает эту ошибку. Есть идеи по ее решению?

 "NEW.CANTIDAD" is not valid in the context where it is used.
  

Комментарии:

1. Ваш синтаксис недопустим, вы должны использовать предложение ССЫЛКИ в определении триггера, чтобы связать псевдоним для НОВОЙ строки.

Ответ №1:

 --#SET TERMINATOR @
CREATE TRIGGER actualizarSaldoIngreso
BEFORE INSERT ON Ingreso
REFERENCING NEW as N
FOR EACH ROW MODE DB2SQL
BEGIN
    UPDATE Cuenta SET Saldo = Saldo   N.Cantidad WHERE IBAN = N.Cuenta_IBAN;
END@
--#SET TERMINATOR ;