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

Oracle数据库触发器(trigger)是一种特殊的程序单元,它与表或视图相关联,用来响应数据库表中对数据的更改操作,可以在表上的触发的特定时间点之前或之后执行,这些改变包括INSERT、DELETE、 UPDATE操作,又可以分为行级触发器(row-level trigger)和表级触发器(statement-level trigger)。

行级触发器(row-level trigger)是指在每行更改时发生,在行触发器中,在触发’时刻’就会为所有行表达式指定的列传递每行新值和旧值。在下列SQL语句中创建一个行级触发器:

“`sql

CREATE OR REPLACE TRIGGER MyTrigger

BEFORE INSERT ON MyTable

BEGIN

— MyTrigger body goes here…

END;


上述代码中指定的表为MyTable,时刻为BEFORE INSERT。行触发器发生更改后,其内部的代码MyTrigger body即可运行。

表级触发器(statement-level trigger)是指在整个表上发生更改时发生,在它的内部代码中,整个表的列不传递新值和旧值,但能够访问当前未提交的改变,这是不能在行触发器中做到的,但是,它不会对表中的所有行起作用,只是当舞台上发生更改时才发生。下列SQL语句中创建一个表级触发器:

```sql
CREATE OR REPLACE TRIGGER MyTrigger
BEFORE INSERT ON MyTable
BEGIN
-- MyTrigger body goes here…
END;

表级触发器在触发时执行一次,并处理发生更改后的所有行,它可以提供一个机会来对对包含INSERT、DELETE和UPDATE操作的SQL语句做一些处理,而且可以处理多种数据库操作,比如INSERT时创建记录到系统表,或UPDATE时修改日志表中的字段等等。

Oracle数据库中的触发器有很多优点,它们提供了两个触发器类型:行级触发器和表级触发器,它可以帮助数据库管理更好地控制对表数据的更改,当表数据发生更改时,它可以帮助用户控制更改范围、触发更改、执行行为等。


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