IBM DB2 Triggers


The following triggers are available in the database.

Trigger

Name: TRG_SUB_INSERT

Content:

CREATE TRIGGER TRG_SUB_INSERT NO CASCADE BEFORE INSERT ON SUBSCRIPTION REFERENCING NEW AS INSERTED FOR EACH ROW MODE DB2SQL BEGIN ATOMIC IF EXISTS (SELECT * FROM SUBSCRIPTION WHERE code = inserted.code) THEN SIGNAL SQLSTATE '50005' SET MESSAGE_TEXT = 'The subscription code is already in the subscription table'; END IF; END !


Trigger

Name: TRG_DICO_UPDATE

Content:

CREATE OR REPLACE TRIGGER TRG_DICO_UPDATE NO CASCADE BEFORE UPDATE OF VALUE ON DICO REFERENCING OLD AS DELETED NEW AS INSERTED FOR EACH ROW WHEN (INSERTED.VALUE < 0 OR (DELETED.STATUS > 1 AND INSERTED.VALUE < DELETED.VALUE AND DELETED.TYPE = 0) OR (DELETED.STATUS > 1 AND INSERTED.VALUE > DELETED.VALUE AND DELETED.TYPE = 1)) BEGIN ATOMIC SIGNAL SQLSTATE '50005' SET MESSAGE_TEXT = 'The DICO value cannot be lower than 0 or DICO status is NOT_USABLE'; END !


Trigger

Name: TRG_DICO_CREDIT_UPDATE

Content:

CREATE OR REPLACE TRIGGER TRG_DICO_CREDIT_UPDATE AFTER UPDATE OF VALUE ON DICO REFERENCING NEW AS INSERTED FOR EACH ROW WHEN (INSERTED.TYPE = 1) BEGIN INSERT INTO DICO_TEMP VALUES(INSERTED.COUN_KEY, INSERTED.HOLD_OID, INSERTED.VALUE); END !