주문을 했을 때 주문 수량만큼 물품테이블의 재고수량변경

이태규·2022년 3월 25일
0

SQL

목록 보기
25/26
CREATE OR REPLACE TRIGGER TRI_ORDER3_INSERT
    AFTER INSERT ON ORDER1
    FOR EACH ROW
DECLARE
    V_QTY NUMBER := 0;
BEGIN
    -- 물품테이블에서 재고수량을 가져옴.
    SELECT I.ITEMQTY INTO V_QTY 
    FROM ITEM1 I WHERE I.ITEMNO =:new.ORDITEM;

    -- 주문수량이 재고수량 작거나 같아야 됨.    
    IF :new.ORDCNT <= V_QTY THEN
        -- 물품의 재고수량 주문수량만큼 뺌
        UPDATE ITEM1 SET ITEMQTY=ITEMQTY-:new.ORDCNT WHERE ITEMNO =:new.ORDITEM;
    ELSE
        -- 오류 출력
        raise_application_error(-20022, '재고부족');
    END IF;
END;
/

:new는 insert할 때 받아올 값임. 그래서 order1을 from 하지 않았지만 order1의 column을 쓸 수 잇는거임.

profile
한 걸음씩 나아가자

0개의 댓글