四、觸發器(Trigger)
阿新 • • 發佈:2018-03-19
new 自動調用 rep 傳遞 也不能 gpo 用戶 color tin
一、觸發器
有點類似AOP裏的攔截器,觸發器不能傳遞參數,也不能輸出參數,也不能顯式調用,只有當滿足觸發器條件的時候Oracle會自動調用。
觸發器:
1、語句級別的觸發器:CRUD操作
2、行級別的觸發器
3、系統級別的觸發器:數據庫的關閉,啟動
4、用戶事件的觸發器:進行drop,alter,create時候觸發
二、觸發器的創建
--創建行級別的觸發器 CREATE OR REPLACE trigger trigger_update_product_table AFTER UPDATE ON product_table FOR EACH ROW --每更新一行,就觸發一次BEGIN --Oracle裏面對觸發器提供了特殊的對象:NEW :OLD來訪問更新前後的數據 DBMS_OUTPUT.put_line(‘更新後‘||:NEW.name);--orcle使用||符號鏈接字符串而已,相當於java中的+連接字符串 DBMS_OUTPUT.put_line(‘更新前‘||:OLD.name); IF UPDATING THEN END IF; IF INSETING END;
--創建表級別的觸發器 CREATE OR REPLACE trigger trigger_update_product_table AFTERUPDATE ON product_table BEGIN --表級別觸發器裏面,不允許使用:NEW :OLD變量 --DBMS.OUTPUT.put_line(‘更新後:‘||:NEW.name); --DBMS.OUTPUT.put_line(‘更新前:‘||:OLD.name); END;
四、觸發器(Trigger)