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 触发器类型的一种,能够完成不同条件判断自动化处理,有效提高用户的处理效率。