Oracle触发器

  • 触发器在某个事件发生时自动地隐式运行。
  • 一个表上最多有12个触发器,但同一时间、同一事件、同一类型的触发器只能有一个,并且各触 发器之间不能互相矛盾。
  • 触发器过多会影响性能;
  • 触发器最多为32kb,如果触发器需执行的操作较复杂,可定义存储过程,在触发器执行时调用该存储过程;
  • 触发器可用于数据确认、安全检查、审计、数据备份和同步。

触发器的组成

触发事件:引起触发器被触发的事件,可以是DML、DDL、数据库系统事件(如系统启动或退出)、用户事件(用户的登录或退出);
触发时间:在事件发生前或发生后触发;
触发操作:触发器被触发后执行的操作;
触发对象:触发事件发生的对象,如表、视图、模式、数据库。
触发条件:由when子句指定一个逻辑表达式,只有当该表达式的值为true时,遇到触发器才会自动执行触发器;
触发频率:指定触发器内定义的动作被执行的次数,可分为语句级触发器和行级触发器,语句触发器指当触发事件发生时,该触发器只执行一次,行级触发器指当触发事件发生时,对受到该操作影响的每一行数据,触发器都单独执行一次。

创建DML触发器语法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle触发器是一种在数据库中定义的特殊类型的存储过程,它会在指定的数据库事件发生时自动执行。在Oracle11g和Oracle12c中,可以定义和使用多种类型的触发器。其中包括简单DML触发器(如BEFORE、AFTER和INSERT OF触发器)、组合触发器和非DML触发器(如DDL事件触发器和数据库事件触发器)[1]。 触发器的作用是在特定的数据库事件发生时执行一系列的操作,例如在插入、更新或删除数据时触发某些逻辑。触发器可以用于实现数据完整性约束、审计跟踪、数据变更记录等功能[1]。 创建触发器的语法如下: CREATE [OR REPLACE] TRIGGER trigger_name {BEFORE | AFTER | INSTEAD OF} {INSERT | UPDATE | DELETE | {INSERT | UPDATE | DELETE}} ON table_name [FOR EACH ROW] [WHEN (condition)] [DECLARE] -- 声明变量和常量 BEGIN -- 触发器的逻辑代码 END; 触发器可以根据需要定义在级别或行级别,并可以使用条件谓词来区分不同的触发事件。例如,INSERTING条件谓词在INSERT事件发生时为TRUE,UPDATING条件谓词在UPDATE事件发生时为TRUE,DELETING条件谓词在DELETE事件发生时为TRUE[3]。 总结起来,Oracle触发器是一种在数据库中定义的特殊类型的存储过程,可以在特定的数据库事件发生时自动执行一系列的操作。在Oracle11g和Oracle12c中,可以定义和使用多种类型的触发器,包括简单DML触发器、组合触发器和非DML触发器触发器可以用于实现数据完整性约束、审计跟踪、数据变更记录等功能[1][2][3]。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值