oracle 触发器 条件判断,Oracle SQL 学习笔记26 - 触发器

触发器

定义

Trigger是与tbale,view,schema或者databse相关的plsql程序块或过程,当特定事件发生时自动触发执行。

分类

触发器主要有两种类型:

应用trigger:由特定的应用程序的事件触发

数据库trigger:由数据库的特定事件触发

设计Trigger触发器的基本指导

首先,使用触发器可以执行一些相关动作,这些相关动作是集中的全局操作

其次,使用trigger应避免和数据库已有功能重复,或者和其他触发器重复

再其次,触发器可以调用plsql过程

最后,过度使用触发器会导致大型应用系统代码难以维护

创建DML触发的triggers

触发时机

触发时机有3个:

BEFORE:DML动作发生之前触发

AFTER:DML动作发生之后触发

INSTEAD OF:替换原有动作,比如一些不可更新的视图

单行受影响的情况

假设DML语句

INSERT INTO departments

(department_id, department_name, location_id)

VALUES(400, 'CONSULTING', 2400);

bef57d201208

s_line.JPG

多行受影响的情况

UPDATE employees

SET salary = salary * 1.1

WHERE department_id = 30;

bef57d201208

m_line.JPG

语法

CREATE [OR REPLACE ] TRIGGER trigger_name

timing

event1 [OR event2 OR event3]

ON object_name

[[REFERENCING OLD AS old | NEW AS new]

FOR EACH ROW

[WHEN (condition)]]

trigger_body

触发顺序

注意,如果一个事件触发多个触发器,则这个触发的先后顺序是随机的。

触发事件和trigger body

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值