精通Oracle的触发器类型(oracle触发器类型)
及其作用
Oracle触发器是一种特殊的存储子程序,当某个表中满足特定条件的数据发生变更时可以自动触发执行一个用户定义过程。触发器分为“行触发器”和”表触发器”两类。
行触发器,当对表进行Insert,Update,Delete操作时,触发器代码会对每一行数据起作用,它常用于不允许修编数据的自行限制和实现一些用户定义的逻辑操作,例如,在插入某条数据前,系统会自动分配编号,它的实现一示例如下:
Create or Replace Trigger trg_test
before Insert on table
FOR EACH ROW
BEGIN
SELECT max_test_no into :new.no from max_no_table
UPDATE max_no_table SET max_test_no = max_test_no + 1
END;
/
表触发器,当对表数据发生变化时,触发器代码会对整张表起作用,它可以用于约束条件非空合法等全表性操作,这时要考虑全局性数据君操作,例如:
CREATE OR REPLACE
trigger trg_salary
AFTER INSERT OR UPDATE OR DELETE
ON table
BEGIN
DECLARE v_total number;
SELECT sum(salary) into v_total from table;
update total_salary set total_salary=v_total;
end;
/
总之,Oracle触发器的作用很多,它既可以实现一些后台事务的自动处理,也可以实现数据的自动验证与约束,要使用Oracle触发器,需要有扎实的SQL语言基础,以及良好的逻辑判断能力。