您的位置:首页 > 数据库 > Oracle

oracle触发器详解

2015-12-10 13:39 330 查看
l数据库触发器是一个与表相关联的、存储的PL/SQL程序。每当一个特定的数据操作语句(Insert,update,delete)在指定的表上发出时,Oracle自动地执行触发器中定义的语句序列。
l
l触发器的类型
•语句级触发器
•在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行。

•行级触发器(FOREACH ROW)
•触发语句作用的每一条记录都被触发。在行级触发器中使用old和new伪记录变量, 识别值的状态。

   CREATE  [or REPLACE] TRIGGER  触发器名

   {BEFORE | AFTER}

   {DELETE | INSERT | UPDATE [OF列名]}

   ON  表名

   [FOR EACH ROW [WHEN(条件) ] ]

   PLSQL 块

限制非工作时间向数据库插入数据

create or replace

trigger insertEmp

before insert on emp

declare

begin

 if  to_char(sysdate,'day') in ('星期六') or to_number(to_char(sysdate,'hh24')) between 18 and 24

   then

       raise_application_error(-20001,'非工作日');

  end if;

end;

确认数据(检查emp表中sal的修改值不低于原值)

create or replace trigger updateemp

  before update on emp  

  for each row

declare

  -- local variables here

begin

  if:new.sal<:old.sal then 

    raise_application_error(-20001,'更改的值不能小于眼有的值'); 

    end if;

end updateemp;

转载自:http://blog.csdn.net/java958199586/article/details/7382755
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: