1. 程式人生 > >四、觸發器(Trigger)

四、觸發器(Trigger)

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
AFTER 
UPDATE ON product_table BEGIN --表級別觸發器裏面,不允許使用:NEW :OLD變量 --DBMS.OUTPUT.put_line(‘更新後:‘||:NEW.name); --DBMS.OUTPUT.put_line(‘更新前:‘||:OLD.name); END;

四、觸發器(Trigger)