2

我有一个基本的疑问..我可以triggerinsert视图更改为新表吗?

例子

create or replace trigger iam_insert
  instead of insert on test123
  FOR EACH ROW

BEGIN

  if inserting then

.
.
.
  end if;

end;

问候

4

2 回答 2

3

是的,这就是INSTEAD OF视图的触发点。您可以将INSERT针对复杂视图的操作转换为对基表(或视图甚至不引用的表)上的任何类型的 DML 操作。

但是,一般来说,很少会遇到INSTEAD OF真正适合触发器的情况。它们当然存在,只是很少见。如果您尝试允许插入视图以将数据插入到视图的基表中,我将绝对确定您不能确保视图本身是保留键的,这将允许您对视图执行 DML无需定义触发器。

于 2012-05-29T15:56:43.953 回答
2

是的,INSTEAD OF 触发器就是为此而设计的。请注意,如果您在视图上定义 INSTEAD OF 触发器,然后在视图上执行数据操作(例如 INSERT),您的触发器将代替操作运行。Oracle 不会像没有触发器那样自动插入数据——这现在是您的责任。

于 2012-05-29T17:01:27.737 回答