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語句,並查看結果,紅色框是觸發器觸發時輸出的結果