트리거(TRIGGER)

<aside> 💡 CREATE [OR REPLACE ] TRIGGER 트리거 이름 AFTER | BEFORE INSERT | UPDATE | DELETE ON 테이블이름 FOR EACH ROW

</aside>

AFTER | BEFORE → 트리거가 작동할 타이밍(명령어 실행 전/후)

INSERT | UPDATE | DELETE → 테이블에 트리거가 작동할 명령어 작성

FOR EACH ROW → 변화가 생길 때마다 실행하도록 함

INSERT문 : 입력할 데이터 값은 :NEW.컬럼명에 지정 된다. UPDATE문 : 변경하기 전의 데이터 값은 :OLD.컬럼명이고, 수정할 경우 데이터 값은 :NEW.컬럼명으로 지정 된다. DELETE문 : 삭제되는 컬럼은: OLD.컬럼명에 지정된다. (BEFORE 사용)

< 트리거 예제 >

CREATE OR REPLACE TRIGGER TRG_01 AFTER
  INSERT ON EMPLOYEE
BEGIN
  DBMS_OUTPUT.PUT_LINE('신입사원이 입사했습니다.');
END;
/

→ EMPLOYEE 테이블에 INSERT 작업이 이루어지면 문구 출력.

행 트리거

문장 트리거