在ORACLE中利用触发器来实现插入数据时更新某字段的值 |
您所在的位置:网站首页 › oracle触发器赋值 › 在ORACLE中利用触发器来实现插入数据时更新某字段的值 |
问题描述
我们以在插入某条数据时需要更新其中一个字段的值为例,即sql语句中执行insert操作,在触发器中进行update操作。 解决方案这个问题说来也简单,首先需要明白oracle触发器的before与after的区别。 详细的了解可以查询官方文档,这里给出一个Oracle问答社区的简要解释: 链接 具体来说,一个before触发器是可以实现修改新值的功能,而一个after触发器是可以实现对最终执行结果进行检验的目的。由此,我们可以得出结论,要是想在插入数据的时候去更新或者修改某个字段的值,应该使用before触发器。 注:若是直接使用after触发器,在触发器中使用update等操作会报错。 因为在执行insert语句后,触发器被触发,此时insert事务还没有commit,故在触发器中对同一条语句进行update操作会报错。 若是在触发器中使用 pragma autonomous_transaction可以避免错误,但是update还是无法执行成功,因为此时表里还没有insert的数据,自然也就无法update成功 复制代码综上所述 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |