【发布时间】:2012-02-27 21:49:24
【问题描述】:
我正在尝试实施交通罚款控制系统。当在表 OBSERVACION 中引入雷达观测时,触发器应检查是否存在对同一辆车进行观测的行,然后计算罚款成本。
我想要一个触发器来检查表的每一行中的条件语句。我的意思是,我希望触发条件检查表中的所有值,并找出其中一个值是否等于引入的新值。像这样的:
WHEN(NEW.fecha_foto = fecha_foto)AND...
其中 fecha_foto 是表中的任何值。
有可能吗?
谢谢。
【问题讨论】:
-
这是不可能的,也不是真正可取的。为什么要这样做?
-
我有一张包含交通罚款行的表格,我想检查新行与之前现有行之间的时间。
-
你想实现什么业务逻辑?
-
我正在尝试实施交通罚款控制系统。当在表 OBSERVACION 中引入雷达观测时,触发器应检查是否存在对同一辆车进行观测的行,然后计算罚款成本。
-
我发布了一个解决方案,但正如其他人指出的那样,它导致了 Oracle 的“变异触发器”问题。这就是为什么我真的不喜欢在 Oracle 中将触发器用于除审计表之外的任何东西。在尝试将记录插入数据库之前,最好使用存储过程或外部客户端程序来计算。