본문 바로가기

Oracle Database /SQL

SQL PL(Trigger)

/*


    Trigger : 촉발시키다

                자동호출 == callback 함수    

    Procedure, Function, Trigger : PL의 3대요소

    

    호출되는 시점 전까지 대기상태이다.


*/




CREATE OR REPLACE TRIGGER triger_test

BEFORE

UPDATE ON departments

FOR EACH ROW


BEGIN

DBMS_OUTPUT.PUT_LINE('변경 전 컬럼 값 : ' || :old.department_name); -- 창이 뜨면 그냥 enter로 넘어가자

DBMS_OUTPUT.PUT_LINE('변경 후 컬럼 값 : ' || :new.department_name);

END;

 /


SET SERVEROUTPUT ON; 

UPDATE departments SET 

department_name = '개발부' 

WHERE department_id = 60;


SELECT

    *

FROM DEPARTMENTS;


ROLLBACK;



SELECT

    *

FROM DEPARTMENTS

WHERE DEPARTMENT_ID = 60;



CREATE OR REPLACE TRIGGER PRINT_MSG

AFTER 

INSERT ON DEPARTMENTS


BEGIN

DBMS_OUTPUT.PUT_LINE('DEPARTMENTS 테이블에 정상적으로 추가했습니다');  

END;

/


INSERT INTO DEPARTMENTS

VALUES(300, '개발부', NULL, NULL);


ROLLBACK;









'Oracle Database > SQL' 카테고리의 다른 글

[ORACLE] DB의 FUNCTION (함수)  (0) 2018.06.29
[ORACLE] DB의 TRIGGER(트리거)  (0) 2018.06.29
SQL PL(FUNCTION)  (0) 2018.06.29
SQL PL(Cursor)  (0) 2018.06.29
SQL PL(3)  (0) 2018.06.29