Oracle 触发器语法及实例(二)
2008-09-19 12:55:36 来源:WEB开发网2、触发器的类型有:
触发器类型:
1、 语句触发器
2、 行触发器
3、INSTEAD OF触发
4、 系统条件触发器
5、 用户事件触发器
2.1、语句级触发器.(语句级触发器对每个DML语句执行一次)
是在表上或者某些情况下的视图上执行的特定语句或者语句组上的触发器。能够与INSERT、UPDATE、DELETE或者组合上进行关联。但是无论使用什么样的组合,各个语句触发器都只会针对指定语句激活一次。比如,无论update多少行,也只会调用一次update语句触发器。
实例:
createorreplacetriggertri_test
afterinsertorupdateordeleteontest
begin
ifupdatingthen
dbms_output.put_line('修改');
elsifdeletingthen
dbms_output.put_line('删除');
elsifinsertingthen
dbms_output.put_line('插入');
endif;
end;
2.2、行级触发器.(行级触发器对DML语句影响的每个行执行一次)
实例一:
触发器
行级触发器
createtabletest(sidnumber,snamevarchar2(20));--创建一个表
createsequenceseq_test;--创建序列
createorreplacetriggertri_test--创建触发器
beforeinsertorupdateofsidontest
foreachrow--触发每一行
begin
ifinsertingthen
selectseq_test.nextvalinto:new.sidfromdual;
else
raise_application_error(-20020,'不允许更新ID值!');--中断程序
endif;
end;
更多精彩
赞助商链接