Código ejemplo de trigger en DB2

A continuación comparto un ejemplo de sintaxis de un trigger en DB2.

Aunque en la documentación está más que claro, siempre va bien contar con un ejemplo concreto y típico de su utilización.

CREATE TRIGGER verificacion_datos NO CASCADE BEFORE UPDATE ON facturas

REFERENCING OLD AS O NEW AS N

FOR EACH ROW MODE DB2SQL

BEGIN ATOMIC

IF (O.FACT_NOMBRE <> N.FACT_NOMBRE) THEN

SIGNAL SQLSTATE 'Z0001' ('UPDATE CON NOMBRE DISTINTO');

END IF;

IF (O.FACT_NIF <> N.FACT_NIF) THEN

SIGNAL SQLSTATE 'Z0002' ('UPDATE CON NIF DISTINTO');

END IF;

IF (O.ID_EMPRESA <> N.ID_EMPRESA) THEN

SIGNAL SQLSTATE 'Z0003' ('UPDATE CON ID_EMPRESA DISTINTO');

END IF;

END