Instead of : 用Trigger的内容替换 事件本身的动作,该触发器用在视图上,举例:
一:创建一个update替代触发器
(1)创建一个视图
1 create or replace view my_view 2 as 3 select id,name from my_table;
查询到视图中的数据如下图:
(2)创建一个update替代触发器,当update视图数据时触发,打印输出下列红色字体语句,来代替更新视图数据
1 create or replace trigger u_trigger 2 instead of 3 update on my_view 4 for each row 5 6 begin 7 dbms_output.put_line('执行update替代触发器!'); 8 end;
(3)执行SQL语句,并查看结果,红色框是触发器触发时输出的结果
二:创建一个delete替代触发器
(1)创建一个视图
1 create or replace view my_view
2 as
3 select id,name from my_table;
查询到视图中的数据如下图:
(2)创建一个delete替代触发器,当delete视图数据时触发,打印输出下列红色字体语句,来代替删除视图数据
1 create or replace trigger d_trigger 2 instead of 3 delete on my_view 4 for each row 5 6 begin 7 dbms_output.put_line('执行delete替代触发器!'); 8 end;
(3)执行SQL语句,并查看结果,红色框是触发器触发时输出的结果