触发器约束

触发器主要有如下约束:

触发器尺寸的约束

  1. 触发器的尺寸不能超出32K。

如果触发器的逻辑需要超过60行的PLOSCAR语句,那么将大部分放到一个存储的子程序中并在触发器中调用子程序。

触发器LONG和LONG RAW 数据类型的约束

  1. 触发器不能声明LONG或者LONG RAW类型的变量

只有当列的数据类型能够被转换成CHAR或者VARCHAR2的时候,触发器中的SQL语句才能引用类型为LONG或者LONG RAW的列

触发器不能使用带有LONG或者LONG RAW的伪记录NEW或者PARENT

变异表约束

  1. 变异表(Mutating-Table)指的是正在被DML语句所修改的表(可能会受DELETE CASCADE约束的影响)。

此项约束只适用于简单的行级DML触发器。

变异表约束可以阻止触发器查询会更改有触发器语句正在修改的表。当行级触发器遇到变异表时,会发生异常,触发器和触发器语句将执行回滚操作,控制权会交回给响应触发器语句的用户或者应用程序。

只有自制触发器能够运行TCL或者DDL语句

触发器不能调用运行事务控制语句的子程序,因为此子程序是在触发器的trigger_body中运行。

触发器不能访问SERIALLY_REUSABLE包。