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

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

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

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


最后

以上就是冷静大侠最近收集整理的关于触发器(三、条件触发)的全部内容,更多相关触发器(三、条件触发)内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部