Oracle数据库中的触发器类型(oracle触发器类型)

随着越来越复杂的关系,数据库中的一些复杂操作需要优化,这时候可以使用Oracle数据库中的触发器,Oracle数据库中有两种类型的触发器:Row Level Trigger和Statement Level Trigger。

Row Level Trigger是行级触发器,它是在表上进行更新、插入或删除时触发的,以便在修改表行时执行SQL语句,Row Level Trigger是反应行的更新,插入或删除操作的触发器,它不受“commit”的影响。下面是一个Row Level Trigger的例子:

CREATE OR REPLACE TRIGGER Ud_Trigger 
BEFORE update ON table_1
FOR EACH ROW
BEGIN
IF :old.age
RAISE_APPLICATION_ERROR(-20014,'age can not be less than 18');
END IF;
END;

Statement Level Trigger是语句级触发器,它只有在表上执行某个操作时才会被触发,比如,在执行Insert、Delete和Update等操作时都会触发Statement Level Trigger。不同于Row Level Trigger,Statement Level Trigger受“commit”的影响。下面是一个Statement Level Trigger的例子:

CREATE OR REPLACE TRIGGER After_Insert_Trg 
AFTER INSERT ON table_1
FOR EACH ROW
BEGIN
IF :new.game_score>=50 THEN
INSERT INTO table_2 VALUES (:new.username,:new.game_score);
END IF;
END;

总之,Oracle数据库中的触发器类型主要有Row Level Trigger和Statement Level Trigger两种,它们能够非常容易地优化表行的更新、插入或删除等操作,这样就可以提高数据库的性能。


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