oracle中触发器

来源:互联网 发布:js div不可点击置灰 编辑:程序博客网 时间:2024/04/30 14:23

触发器的类型有:

  触发器类型:           
  1、 语句触发器

  2、 行触发器

  3、INSTEAD OF触发

  4、 系统条件触发器

  5、 用户事件触发器

 

语句级触发器.(语句级触发器对每个DML语句执行一次)

是在表上或者某些情况下的视图上执行的特定语句或者语句组上的触发器。能够与INSERT、UPDATE、DELETE或者组合上进行关联。但是无论使用什么样的组合,各个语句触发器都只会针对指定语句激活一次。比如,无论update多少行,也只会调用一次update语句触发器。

 

代码

create or replace trigger tri_test
  after insert or update or delete on test
  begin
         dbms_output.put_line('dddd');
end;

dml是能够批量处理的 所以 :old :new是不允许在这里用的  只有某一个行记录才有

行级触发器.(行级触发器对DML语句影响的每个行执行一次)
 create or replace trigger tri_test--创建触发器
  before insert or update of sid on test
  for each row--触发每一行
  begin
  dbms_output.put_line(:new.id);  --old 只有删除与修改的时候有

  end;
instead of触发器
(此触发器是在视图上而不是在表上定义的触发器,它是用来替换所使用实际语句的触发器.)不太懂

 

模式触发器不太懂

  可以在模式级的操作上建立触发器.

  实例如下: 

      create or replace trigger log_drop_obj
  after drop on schema
  begin
  insert into .....
  end;

数据库级触发器.

  可以创建在数据库事件上的触发器,包括关闭,启动,错误,登录等.这些事件都是实例范围的,不与特定的表或视图关联

 

create or replace trigger trig_name
  after startup on database
  begin
  ...........
  end;

 

CREATE OR REPLACE TRIGGER DBT_LOGON

AFTER LOGON

ON DATABASE

BEGIN

原创粉丝点击