4. INSERT 触发器
例题
 例1,每在离退休表freeemp中增加一个职工记录时,同时要在在职人员表work_table中删除一条相应的职工记录。定义触发器如下:
  CREATE TRIGGER freeemp //触发器名称freeemp
  ON free_table //作出向free_tableInsert的动作
  FOR INSERT
  AS
  DELETE FROM work_table //发生的条件为从work_table中删除记录
  WHERE free_table.no = work_table.no //设定free_table插入的no为相应work_table的no

 5.UPDATE触发器
例题
 例2,该触发器是在对emp表的sal属性执行update语句时触发:每修改一个职工的工资,就检查新工资是否比原工资低,若是低,则恢复原工资而不做修改。
  CRATE TRIGGER newsaltrigger //触发器名称newsaltrigger
  AFTER UPDATE OF sal ON emp //在对emp表的sal属性更新时触发
  REFERENCING OLD AS oldtuple NEW AS newtuple
  WHEN(newtuple.sal < oldtuple.sal) //当新工资低于旧工资时触发
  UPDATE emp
  SET sal = oldtuple.sal //更新emp表,设定工资为旧工资
  WHERE eno =newtuple.eno //更新条件emp表的eno等于newtuple表的eno。
  FOR EACH ROW ;

 6.DELETE触发器
例题
 例3,如图4-26所示,通路P3包括R1,R2,R3,从通路表CONNECTION删除其中任何一条通路,都要将整个通路的所有矩形从矩形表RECTANGLE中全部删除,这时就要用触发器实现。
  CREATE TRIGGER T3 //触发器名称T3
  ON CONNECTION //对connection表
  FOR DELETE //当发生删除事件时
  AS DELETE RECTANGLE
  WHERE RECTANGLE.path = CONNECTION.path_name
    //动作为从rectangle表中删除path=connection.path_name的元组。

  图4-26 通路P3