总览
对于使用SQL触发器来帮助管理业务的客户,有一个新的IBM DB2 for i增强功能,可以更轻松地管理和维护这些触发器。 IBM i 7.1 Technology Refresh 6提供了对多个事件触发器的支持,这允许单个SQL触发器处理触发器事件(INSERT,UPDATE和DELETE)的组合。 有了新的支持,现在就可以只需要更新一个源SQL触发器,以适应数据库和业务需求的将来更改。
该支持引入了触发器谓词和新关键字,这些关键字可用于基于导致触发触发器的事件来控制触发器中的逻辑流。 新谓词“插入”,“更新”和“删除”是不言自明的,并且涉及导致触发触发器的事件。 CREATE TRIGGER语句中还添加了新SQL语法,以允许为触发器定义多个事件。 该语法允许指定触发器可以处理的事件。
要使用SQL多事件触发器支持,需要在系统上应用DB2 PTF组SF99701级别23(请参阅SF99701级别22增强功能) 。
多个事件触发示例
以下是一些示例,这些示例显示了触发谓词的用法以及CREATE TRIGGER语句的新语法。
在个示例中,假设您有一个名为employee的表来跟踪员工信息。 该表包含两列,等等,名为EDLEVEL和薪水 。 另外,假设该表当前有两个为其定义的BEFORE触发器程序,一个用于INSERT,另一个用于UPDATE,可以根据edlevel调整或设置薪水列。
这是INSERT之前的触发器:
清单1. INSERT之前的触发器触发器insert_set_salary
-