WEB开发网
开发学院数据库Oracle Oracle 触发器语法及实例(二) 阅读

Oracle 触发器语法及实例(二)

 2008-09-19 12:55:36 来源:WEB开发网   
核心提示:2、触发器的类型有: 触发器类型:1、 语句触发器2、 行触发器3、INSTEAD OF触发4、 系统条件触发器5、 用户事件触发器2.1、语句级触发器.(语句级触发器对每个DML语句执行一次)是在表上或者某些情况下的视图上执行的特定语句或者语句组上的触发器,能够与INSERT、UPDATE、DELETE或者组合上进行

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;

1 2 3  下一页

Tags:Oracle 触发器 语法

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接