我是靠谱客的博主 冷静大侠,最近开发中收集的这篇文章主要介绍触发器(三、条件触发),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在使用触发器的过程中,我们经常发现真正关注的只有一部分数据,并不需要对每个操作都进行触发或处理。

此时可以用到条件触发,条件触发是有限制的,根据不同的需求,可以分为以下几个应用场景:

1.只关注某几列的数据变更,用update of

只有在update后面才能跟of,在insert和delete中无法只关注某几列,

会报错ORA-04073: column list not valid for this trigger type

比如下面的触发器,只关心2个字段的变更


分别执行2个update语句


of后面的字段更新触发了,而没有关注的字段更新没有触发。


2.只关心特定条件的记录,用WHEN

在有些设计不佳的应用中,有些字段可能经常会被update成原值,即无效的update,对这些update根本没有必要关注。

此时可以用when做条件过滤,WHEN条件在几乎所有触发器中都可以使用,并不局限于在update触发器。

下面用一个简单的案例看一下when的用法,判断OBJECT_NAME字段被修改成不一样的值时才执行触发


注意:WHEN条件里的OLD和NEW是不能带冒号:的

否则会报错ORA-25000: invalid use of bind variable in trigger WHEN clause


最后

以上就是冷静大侠为你收集整理的触发器(三、条件触发)的全部内容,希望文章能够帮你解决触发器(三、条件触发)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部