TRIGGER

DONI·2022년 3월 29일
0

Oracle

목록 보기
22/22
post-thumbnail

🏹 TRIGGER

INSERT, UPDATE, DELETE 등 DML에 의한 테이블 또는 뷰의 이벤트 발생 시
자동으로 실행될 내용을 정의하여 저장하는 객체(PROCEDURE)


🏹 TRIGGER의 종류

  • SQL문의 실행 시기에 따른 분류

    종류설명
    BEFORE TRIGGERSQL문 실행 전에 TRIGGER 실행
    AFTER TRIGGERSQL문 실행 후에 TRIGGER 실행
  • SQL문에 의해 영향을 받는 각 ROW에 따른 분류

    종류설명
    ROW TRIGGER
    (행 트리거)
    각 ROW에 대해 TRIGGER를 한 번씩 실행
    TRIGGER 생성 시 FOR EACH ROW 옵션 작성
    ▪ OLD : 참조 전 컬럼 값
    ▪ NEW : 참조 후 컬럼 값
    STATEMENT TRIGGER
    (문장 트리거)
    SQL문에 대해 한 번만 실행 (DEFAULT TRIGGER)

🚩 소스코드

CREATE OR REPLACE TRIGGER STOCK_TRG 
AFTER INSERT ON PRO_DETAIL 
FOR EACH ROW -- ROW TRIGGER 옵션
BEGIN 
    IF (:NEW.STATUS = '입고') 
    THEN 
        UPDATE PRODUCT SET 
        STOCK = STOCK + :NEW.AMOUNT 
        WHERE PCODE = :NEW.PCODE;
    ELSE -- 출고
        UPDATE PRODUCT SET
        STOCK = STOCK - :NEW.AMOUNT
        WHERE PCODE = :NEW.PCODE;
    END IF;
END;
/
profile
틀린 내용이 있다면 댓글 또는 이메일로 알려주세요 ❤ꔛ❜

0개의 댓글