oracle 触发器

目录

 

1 触发器

1.1 触发器概述

1.2 触发器的创建 

 1.3 触发器维护


1 触发器

触发器时存储在数据库中的程序单元,当数据库中发生某些事件时,如insert,delete,数据库会自动触发触发器。执行相应的操作。

1.1 触发器概述

触发器在创建成功后,不能直接被调用,只有当触发条件成立时,才能执行。触发器存在以下作用

  1. 允许、限制表的修改
  2. 提供日志记录
  3. 防止无效的事物处理
  4. 启动复杂的业务逻辑

触发事件:

  1. insert:当指定表发生插入时执行触发器 
  2. update:当指定表发生更新时执行触发器
  3. delete:当指定表发生删除时执行触发器
  4. create:创建对象时执行触发器
  5. alert:修改对象时执行触发器
  6. drop:删除对象时执行触发器
  7. startup/shutdown:数据库打开或者关闭时执行触发器

触发时间

  1.        before 在指定时间发生前执行
  2.        after 在指定时间发生后执行

触发级别

  1. 行触发:对于指定表,改变一行数据,触发一次,这种类型的触发器只有在insert、update、delete完成以后被触发
  2. 语句触发:对于触发事件只能触发一次且不能访问。简单来说无论sql语句影像多少行记录,触发器只执行一次。

1.2 触发器的创建 

触发器的创建语法

create or replace  trigger trigger_name

before|after|instead of

trigger_event on  table|view

for each row

enable|disable

when(condition)

body

  1.  replace  如果创建的触发器已经存储在则替换为当前罪行触发器
  2. trigger_name 触发器名称
  3. before|after|instead of 语句执行前触发 after 语句执行后触发  instead of  替换行触发器
  4. trigger_event  触发事件 一个触发器可以有多个触发器
  5. table|view 执行触发器的表或者试图
  6. for each row 行级触发器,省略默认为语句机触发器
  7. enable|disable 设置触发器是否可用状态
  8. when(condition) 触发器被触发的条件
  9. body 过程体 触发后执行的具体操作
create or replace trigger test_trigger --创建或者替换触发器 test_trigger

after delete on emp --指定触发事件和执行触发器的表

begin   -- 执行体

 if deleteing then
   
    dmps_out.put_line('删除。。。。')
 
  end if;
end;  -- 结束

 1.3 触发器维护

修改触发器:使用replace关键字

重新编译触发器:如果需要对触发器进行重新编译可以使用语法 alert trigger trigger_name comple

禁用启用触发器 alert trigger trigger_name disable 禁用 alert trigger trigger_name enable 启用

删除触发器 drop trigger trigger_name 

参考 oracle 从入门到精通

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值