首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >所有行中的触发器条件

所有行中的触发器条件
EN

Stack Overflow用户
提问于 2012-02-27 02:08:45
回答 1查看 216关注 0票数 0

我正在尝试实现一个交通罚款控制系统。当在OBSERVACION表中引入雷达观测值时,触发器应该检查是否有一行在同一辆车上有观测值,然后计算罚款成本。

我想要一个触发器来检查表的每一行中的条件语句。我的意思是,我希望触发器条件检查表中的所有值,并找出其中一个值是否等于引入的新值。如下所示:

代码语言:javascript
复制
WHEN(NEW.fecha_foto = fecha_foto)AND...

其中fecha_foto是表中的任意值。

有可能吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-27 21:49:25

对拥有触发器的同一个表发出DML (包括SELECT)的触发器会引发ORA-4091的问题,即变异表异常。Oracle抛出此错误是因为它期望事务的结果是确定性的,并且在其自己的表上发出DML的触发器将不确定性引入到过程中。

变化表是糟糕设计的可靠指示器,尤其是糟糕的数据模型,这里似乎就是这种情况。

如果fine的值依赖于单个观察的结果,那么FINE可以作为OBSERVACION表中的一列。但是,您的业务规则表明,该值可能取决于几个观察值,如果它们落在某个特定的时间段内。在这种情况下,罚款应该在它自己的表中。您需要在OBSERVACION和MULTA之间使用外键来指示特定罚款涵盖哪些观察结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9455690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档