Oracle中触发器的使用
具体应用
:
create trigger trg_view_sy_scrap_entryno_head--触发器名
before update--update触发器
of drum_no--触发字段drum_no
on view_sy_scrap_entryno_head--触发的表或视图view_sy_scrap_entryno_head
referencing old as old_value--触发前的行值old_value
new as new_value--触发后的行值new_value
for each row
when (new_value.department_id<>80 )--department_id不等于80触发器才执行
begin
:new_value.commission_pct :=0;
end;
--oracle 里面 对触发器 也提供了特殊的对象 :NEW :OLD 来访问更新前后的数据
before和after:指在事件发生之前或之后激活触发器。
instead of:如果使用此子句,表示可以执行触发器代码来代替导致触发器调用的事件。
insert、delete和update:指定构成触发器事件的数据操纵类型,update还可以制定列的列表。
referencing:指定新行(即将更新)和旧行(更新前)的其他名称,默认为new和old。
table_or_view_name:指要创建触发器的表或视图的名称。
for each row:指定是否对受影响的每行都执行触发器,即行级触发器,如果不使用此子句,则为语句级触发器。
when:限制执行触发器的条件,该条件可以包括新旧数据值得检查。
declare---end:是一个标准的PL/SQL块。
以下是我自己写的一个触发器,用于对视图进行增删改。