我正在为 DBMS 考试而学习,我正在尝试做一些触发器。“标准”行触发器没有问题,但问题出现在语句触发器上。
练习是创建一个触发器,如果某个列的值的总和更新到低于最小值 (30),则引发异常。
所以表是这样的:
ID | VALUE
----------
1 | 23
2 | 11
3 | 14
并且更新将执行类似的操作
UPDATE TABLE SET VALUE = VALUE - 10
这应该抛出一个异常,因为之前的总和是 48,更新之后的总和是 18。
我已经尝试过使用行触发器,但是在同一张表上进行选择会引发“变异表”警告,所以寻找这个我想这应该是由于触发器设计不佳造成的。
可能我应该实现一个语句触发器,但似乎我无法访问 new_table 或 old_table,而且我不知道如何编写它们。这很糟糕,因为它们看起来很简单,但我找不到任何有用的东西或任何例子。
有什么帮助吗?
提前致谢!
编辑:
并且新表/旧表引用似乎也存在于Oracle中。