概述
在使用触发器的过程中,我们经常发现真正关注的只有一部分数据,并不需要对每个操作都进行触发或处理。
此时可以用到条件触发,条件触发是有限制的,根据不同的需求,可以分为以下几个应用场景:
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
最后
以上就是冷静大侠为你收集整理的触发器(三、条件触发)的全部内容,希望文章能够帮你解决触发器(三、条件触发)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复