DB2 触发器语法之前

DB2 before trigger syntax

我已经定义了这个触发器:

CREATE TRIGGER actualizarSaldoIngreso
BEFORE INSERT ON Ingreso
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
    UPDATE Cliente SET Nombre = 'Juan' WHERE DNI = '87366034M';
END;

但是 DB2 returns 这个错误:

An unexpected token "END-OF-STATEMENT" was found following "RE DNI = '87366034M'". Expected tokens may include: "<delim_semicolon>"

有什么想法吗?

您需要像这样更改终止符:

--#SET TERMINATOR @
CREATE TRIGGER actualizarSaldoIngreso
BEFORE INSERT ON Ingreso
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
    UPDATE Cliente SET Nombre = 'Juan' WHERE DNI = '87366034M';
END@
--#SET TERMINATOR ;

使用不同的终止符,批处理不会过早执行。