My team at IBM recently released DB2 Express-C 9.7.4, the latest and greatest version of our free database.
Raul wrote up a detailed article with the technical nitty-gritty of what’s new. There’s a bunch of different improvements, but one thing that’s caught my eye are the enhancements to triggers.
A trigger is something defined to fire automatically when you insert, update, or delete a row in a table. Starting with 9.7.4, you can basically inline a whole stored procedure in the trigger definition. This is nice because it lets you keep the code for all the different actions on a table together.
Let me quote Raul’s example:
CREATE TABLE COMPANY_STATS (NBEMP INTEGER)
!
CREATE TRIGGER HIRED
AFTER INSERT OR DELETE OR UPDATE OF SALARY ON EMPLOYEE
REFERENCING NEW AS N OLD AS O FOR EACH ROW
BEGIN
IF INSERTING
THEN UPDATE COMPANY_STATS SET NBEMP = NBEMP + 1;
END IF;
IF DELETING
THEN UPDATE COMPANY_STATS SET NBEMP = NBEMP - 1;
END IF;
IF (UPDATING AND (N.SALARY > 1.1 * O.SALARY))
THEN SIGNAL SQLSTATE '75000' SET MESSAGE_TEXT='Salary increase>10%';
END IF;
END
!
Ignore that last part. All salary increases should be > 10%.
Leave a Reply