【发布时间】:2013-02-09 22:53:04
【问题描述】:
我正在准备 DBMS 考试,我正在尝试做一些触发器。 “标准”行触发器没有问题,但问题来自语句触发器。
练习是创建一个触发器,如果某个列的值的总和更新到低于最小值 (30),则引发异常。
所以表格是这样的:
ID | VALUE
----------
1 | 23
2 | 11
3 | 14
更新会做类似的事情
UPDATE TABLE SET VALUE = VALUE - 10
这应该会引发异常,因为之前的总和是 48,而更新之后的总和是 18。
我尝试过使用行触发器,但在同一个表上执行选择会引发“变异表”警告,所以我想找这个,这应该是由于触发器设计不佳造成的。
可能我应该实现一个语句触发器,但似乎我无法访问 new_table 或 old_table,而且我不知道如何编写它们。这很糟糕,因为它们看起来很简单,但我找不到任何有用的东西或任何例子。
有什么帮助吗?
提前致谢!
编辑:
Oracle.. 中似乎还存在 new_table/old_table 引用。
【问题讨论】:
-
您的链接指向
JavaDB的手册(这是一个重新命名的 Apache Derby 数据库)。这与 Oracle DBMS 无关。真正的 Oracle DBMS 手册可以在这里找到:oracle.com/pls/db112/docindex -
Ups,由于托管地址,我认为那是 Oracle。感谢您指出这一点!