/*
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 |