现在的位置: 首页 > 综合 > 正文

Oracle学习(五)

2013年12月09日 ⁄ 综合 ⁄ 共 1186字 ⁄ 字号 评论关闭

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块。

 

 

以下是我自己写的一个触发器,用于对视图进行增删改。


抱歉!评论已关闭.