Oracle触发器:类型、特征与性能比较(oracle触发器类型)

Oracle触发器是一种能够自动监控数据库中的更改操作的物体。它具有很强的完备功能,是Oracle数据库的重要组成部分。

Oracle触发器包括三种类型:Before Trigger,After Trigger 和 Instead of Trigger。该 trigger 有两个特征:DML、DDL。

Before Trigger,又称为前置触发器,是在数据库完成更新数据库之前执行的,比如说在更新数据库之前有一个字段要设置一定的值,就可以使用 Before Trigger 来设置此字段的值。

After Trigger,又称为后置触发器,会在数据库完成更新数据库后执行,比如在更新数据库后,需要再执行一些复杂操作,就可以使用 After Trigger 来完成。

Instead of Trigger 又称为其他触发器,有时候需要修改某些视图,但是由于视图不支持插入,这个时候就需要使用 Instead of Trigger ,比如说在插入数据库之前先执行某些操作,就可以使用 Instead of Trigger 来解决。

Oracle触发器的性能比较得出,Before Trigger 明显比 After Trigger 和 Instead of Trigger 的性能好得多,因为它不需要等待数据库的更新操作(DML)完成后才能生效,而 After Trigger 和 Instead of Trigger 需要等待数据库的更新完成才能执行对应的 trigger,这会显著降低性能。

下面的代码演示如何为某一表创建一个Before Trigger来触发:

create or replace trigger trg_test_test
before insert on test_test
for each row
begin
:new.name := 'test';
end;

以上代码为表test_test 创建一个 Before Trigger,在插入数据之前将 name 字段设置为”test“。同样,表test_test也可以设置After Trigger 和 Instead of Trigger。

总之,Oracle触发器是Oracle数据库绝佳的功能,它由三种不同类型: Before Trigger,After Trigger 和 Instead of Trigger , 每种触发器具有不同特点和性能,都可以帮助数据库中的更新操作变得更加高效。


数据运维技术 » Oracle触发器:类型、特征与性能比较(oracle触发器类型)