精通 Oracle 触发器:不同类型触发器分析(oracle触发器类型)
Oracle数据库的触发器用于支持具有复杂逻辑的业务要求,而不只是更新数据库表。其在执行更新或删除DML语句时被调用,它可以替代用户访问技术(如存储过程和函数),从而实现自动化。
Oracle提供了三种类型的触发器,即行级触发器,表级触发器和全表触发器。每种类型都有自己的特点,下面就来分析它们之间的不同。
行级触发器,也称之为行触发器,是Oracle数据库中最常用的触发器类型。它允许在定义时指定一个SQL语句,当向表中插入和/或更新行时,就会调用SQL语句来处理此行,如下所示:
create trigger tr_test
before insert or update on testtable for each row
begin ...
end;
表级触发器是Oracle数据库中第二种最常用的触发器类型。它比行级触发器更加灵活,用户可以在定义时指定一个或多个SQL语句, 并在插入,更新或删除的全部命令操作完成之后调用它们,如下所示:
create trigger tr_test
after insert or update or delete on testtable begin
...end;
而全表触发器可以指定一系列存储过程来处理更新的所有记录表行,不过,这个类型的触发器相对来说不太常用,如下所示:
CREATE OR REPLACE TRIGGER tr_test
AFTER INSERT OR UPDATE OR DELETE ON testtable FOR EACH ROW
BEGIN ...
END;
总之,Oracle提供了三种不同类型的触发器,它们之间的区别是调用SQL语句的时机不同。如果掌握这些触发器的基本概念,精通Oracle触发器也并非难事。