#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 ;