数据库触发器的运用

来源:互联网 发布:刘国梁事件知乎 编辑:程序博客网 时间:2024/04/28 14:22

触发器分为行级触发和语句触发。行级触发每影响一行执行一行。语句触发执行玩语句后触发一次,不管这条语句会影响多少行,都只触发一次。默认是语句触发。其语法规则为:

create [or replace] trigger <tri_name>after|before|instand of[insert or update [of column_name] or delete]on <table_name>[referrncing OLD as old / New as new][for each row][when (condition)]pl/sql block

触发器中使用PL/SQL语句可以轻松可靠地实现许多复杂的功能,我在这里使用的主要是DML触发器。

下面是几个简单的小案例:

  1. 对于主键编号的修改(自动增长列:T0001-T???)
create or replace trigger tri_ts1_tidbefore insert on ts1for each row begin   select 'T'||substr(seq_ts1_tid.nextval,2) into :new.tid from dual;end;
  1. 对于主外键的修改
create or replace trigger tri_updatebefore update on deptfor each row  begin     update emp set deptno=:new.deptno where deptno=:old.deptno;    commit;  end;
  1. 进行安全校验
create or replace trigger tri_emp_checkbefore update on empfor each rowwhen(new.sal<3000)begin    :new.sal := 3000;  --PL/SQL 两种给变量赋值的方式 select .. into ..     :=    raise_application_error(-20001,'修改后的工资不能低于3000');  --错误提示,可以按照自己的需求,不使用就不会报错,数据更改;使用数据不变。end;

小结:or replace 可以在触发器需要更改时节省很多功夫。触发器的使用需要一定的PL/SQL基础

0 0
原创粉丝点击