PolarDB兼容Oracle数据库支持行级和语句级触发器。行级触发器对受触发事件影响的每一行触发一次。例如,如果删除定义为表上的触发事件,并且发出一条从表中删除五行的DELETE命令,则触发器将触发五次,为每一行触发一次。

相反,无论受触发事件影响的行数是多少,语句级触发器都按每个触发语句触发一次。在前面的单个DELETE命令示例中,该命令删除五行,语句级触发器将仅触发一次。

对于语句级触发器,操作顺序(触发器代码块是在触发语句本身之前还是之后执行)可以定义;对于行级触发器,触发器代码块是在每一行之前还是之后执行将受触发语句的影响。

在之前行级触发器中,触发器代码块在对受影响的每一行执行触发操作之前执行。在之前语句级触发器中,触发器代码块在执行触发语句的操作之前执行。

在之后行级别触发器中,触发器代码块在对受影响的每一行执行触发操作之后执行。在之后语句级触发器中,触发器代码块在执行触发语句的操作之后执行。