学习Oracle的触发器类型分类(oracle触发器类型)

Oracle触发器是Oracle数据库中的一种数据库对象,它可以在特定的条件发生时自动完成一定的任务,可以保证数据库的正常运行,当在Oracle系统中执行某些DML(数据操作语言)语句时会自动被触发。Oracle触发器分为3种,分别是表级触发器、行级触发器和数据库触发器。

1、表级触发器:表级触发器在表上配置,当在表上执行 insert,update与 delete操作时其配置的触发器就会自动生效,如下:

CREATE OR REPLACE TRIGGER Trg_Employee

BEFORE INSERT OR DELETE OR UPDATE ON Employee

FOR EACH ROW

BEGIN

IF INSERTING THEN

BEGIN

END;

ELSIF DELETING THEN

BEGIN

END;

ELSIF UPDATING THEN

BEGIN

END;

END IF;

END;

/

2、行级触发器:行级触发器可以定义在表的某一列上,当对表的该列进行更新操作时,可以引发该行级触发器,即在更新指定字段时或者更新时满足某些限制条件时,可以自动运行函数完成更新,如下:

CREATE OR REPLACE TRIGGER Trg_Employee_on_Salary

AFTER UPDATE OF salary ON Employee

FOR EACH ROW

BEGIN

IF :new.salary > :old.salary THEN

BEGIN

END;

END IF;

END;

/

3、数据库触发器:数据库触发器不管何时,只要有对数据库的变动,就会触发,并执行相应的操作,系统定义的数据库触发器名为 system trigger,如下:

CREATE OR REPLACE TRIGGER Trg_Database

AFTER STARTUP

ON DATABASE

BEGIN

END;

/

总而言之,Oracle触发器有三种类型:表级触发器、行级触发器和数据库触发器。表级触发器以及行级触发器在特定的insert、update或delete操作发生时都会被触发,而数据库触发器只能响应服务器的启动、停止和关闭等全局事件,从而实现完成特定的工作。学习Oracle的触发器类型分类非常重要,了解这些类型的区别也是Oracle数据库应用的重要内容。


数据运维技术 » 学习Oracle的触发器类型分类(oracle触发器类型)