Oracle数据库中触发器类型详解(oracle触发器类型)

Oracle数据库中触发器是一种特殊的PL/SQL程序,它在表或表空间执行语句时自动执行。Oracle称之为触发器,其目的是提供一种实现数据自动更新的方式,可以更好地实现数据的容错和安全性。

触发器可以分为两种类型:表级触发器和行级触发器。

表级触发器是指只能在表上激活的触发器,它只在表上的INSERT、UPDATE或DELETE操作中激活,直接关联在指定的表上,且在该表发生DML操作时执行指定的PL/SQL程序,如下所示:

“`sql

CREATE OR REPLACE TRIGGER trg_BeforeInsert

BEFORE INSERT ON emp

for each row –row表示行级触发器

begin

dbms_output.put_line(’emp””s table insert before trigger executed.’);

end;


行级触发器是指当每一行记录进行表中的DML操作时被激活的触发器,它仅在表中每行数据发生DML操作时触发,行级触发器使用FOR EACH ROW子句,当每一行发生INSERT、UPDATE或DELETE时触发,如下所示:

```sql
CREATE OR REPLACE TRIGGER trg_BeforeInsert
BEFORE INSERT ON emp
for each row --row表示行级触发器
begin
dbms_output.put_line('update emp''''s salary ,subtract 10%');
:new.sal := :new.sal*0.9;
end;

Oracle数据库中触发器可以显著地提高数据库数据管理和查询能力,而且它也能提供更高的数据完整性和安全性。当更新表或行时,触发器可以实现相应的功能。


数据运维技术 » Oracle数据库中触发器类型详解(oracle触发器类型)