2
create or replace trigger beforeInsert
instead of insert on Friends
for each row



begin
dbms_output.put_line('This operation is prohibited');
end beforeInsert;

我正在尝试创建一个触发器,该触发器会显示消息“禁止此操作”而不是插入到 table 中,但会出现编译错误。Oracle IDE 要求我指定之前或之后。怎么了?我知道它instead of用于视图,但是如何禁止使用触发器插入表?

4

1 回答 1

3

INSTEAD OF触发器只能在视图上创建。

对于表,您可以创建BEFOREAFTER触发器。实际上,您可以根据您的要求在表上创建四种不同类型的触发器:

BEFORE STATEMENT
  BEFORE ROW
  AFTER ROW
AFTER STATEMENT

至于您的要求,如果要禁止插入表中,请不要使用触发器。改为撤销用户的 INSERT 权限。

于 2013-08-21T04:18:13.773 回答