在ORACLE中利用触发器来实现插入数据时更新某字段的值

您所在的位置:网站首页 oracle触发器赋值 在ORACLE中利用触发器来实现插入数据时更新某字段的值

在ORACLE中利用触发器来实现插入数据时更新某字段的值

2024-07-13 20:59| 来源: 网络整理| 查看: 265

问题描述

我们以在插入某条数据时需要更新其中一个字段的值为例,即sql语句中执行insert操作,在触发器中进行update操作。

解决方案

这个问题说来也简单,首先需要明白oracle触发器的before与after的区别。 详细的了解可以查询官方文档,这里给出一个Oracle问答社区的简要解释: 链接

具体来说,一个before触发器是可以实现修改新值的功能,而一个after触发器是可以实现对最终执行结果进行检验的目的。由此,我们可以得出结论,要是想在插入数据的时候去更新或者修改某个字段的值,应该使用before触发器。

注:若是直接使用after触发器,在触发器中使用update等操作会报错。 因为在执行insert语句后,触发器被触发,此时insert事务还没有commit,故在触发器中对同一条语句进行update操作会报错。 若是在触发器中使用 pragma autonomous_transaction可以避免错误,但是update还是无法执行成功,因为此时表里还没有insert的数据,自然也就无法update成功 复制代码

综上所述&#x



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3