Oracle 触发器类型:实现条件自动化处理(oracle触发器类型)

Oracle 触发器类型能够满足用户对不同条件判断自动化处理的需求,具备一定的触发条件,能够根据触发任务的条件执行相关的程序操作。触发器类型可以分为三种:行级触发器、表级触发器和数据库事件触发器。

行级触发器:它定义在表或视图上,只有当某一行被INSERT、UPDATE或DELETE触发器才被触发,它也可以使用FOR EACH ROW 关键字多次触发,它是最常用最高效的触发器。在语句块中,可以使用变量 :OLD 记录修改前的行,使用变量 :NEW 记录修改后的行,下面是一个行级触发器的例子:

CREATE OR REPLACE TRIGGER salary

AFTER UPDATE ON STAFF

FOR EACH ROW

BEGIN

IF :OLD.salary > 1000 THEN

INSERT INTO sallog

VALUES (username, department, :OLD.salary); END IF;

END;

表级触发器:该类型的触发器指定在数据库表上,可以在表内起作用,当表发生INSERT、UPDATE或DELETE时触发器被激活,下面是一个表级触发器的例子:

CREATE OR REPLACE TRIGGER bki_b4_trigger

BEFORE DELETE ON tab_name

FOR EACH ROW

BEGIN

IF OLD.ID>5 THEN

DELETE FROM another_table

WHERE another_table.F_ID = :OLD.ID;

END IF;

END;

数据库事件触发器:该触发器可以触发指定的数据库活动,例如前台登陆、服务器启动等事件,下面是一个数据库事件触发器的例子:

CREATE OR REPLACE TRIGGER session_connect_trigger

AFTER LOGON ON DATABASE

BEGIN

SELECT COUNT(*) INTO v_count

FROM employees;

IF v_count > 500 THEN Dbms_Output.Put_Line(‘Employee Count exceeds 500’); END IF;

END;

总之,不管是行级触发器、表级触发器还是数据库事件触发器都是 Oracle 触发器类型的一种,能够完成不同条件判断自动化处理,有效提高用户的处理效率。


数据运维技术 » Oracle 触发器类型:实现条件自动化处理(oracle触发器类型)