<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 작업이 이루어지면 문구 출력.
행 트리거
문장 트리거
트리거 시간에 의해 PL/SQL 구문이 단 한번만 실행
입출고 예제