plsql(二)--触发器

来源:互联网 发布:中南网络大学教育平台 编辑:程序博客网 时间:2024/05/22 07:54
触发器(trigger):当特定的DML语句(INSERT,UPDATE或DELETE)运行时,由数据库自动运行的过程。
触发器可以在DML语句运行之前和之后激活。
触发器可以在DML语句作用的每一行上都运行一次,也可能只在所有的行上运行一次。


CREATE [OR REPLACE] TRIGGER 触发器名
[BEFORE | AFTER] 激活触发器的事件(insert,update,delete)
ON 表名
[FOR EACH ROW]  -- 指定为行级触发器
[WHEN 触发条件]
BEGIN
    主体;
END [触发器名];



多种激活触发器用or来连接:insert or update or delete
在触发器主体语句中可以用“inserting”、“updating”、“deleting”判断激活事件。
在行级触发器中,可以通过:old和:new别名访问列的原值和新值。

create or replace tigger t
before nsert or update or delete on emp
for each row  --行级触发器 一次sql中影响多行,它会执行多次
                      行级触发器中有新旧值::new  :old  ,它们通过 :new. :old. 获取值
              --去掉 for each row  表级触发器
begin
  if(inserting) then;
  
  end if;
  if(updating) then;
  
  end if;
  if(deleting) then;
  
  end if;
end;


禁用和启用触发器

ALTER TRIGGER 触发器名 {DISABLE | ENABLE};

查看有关触发器的信息

数据字典:user_triggers视图

删除触发器

DROP TRIGGER 触发器名;