프로그래밍 언어/SQL

[SQL] 중첩 트리거 (Nested Trigger)

ShovelingLife 2022. 6. 12. 13:19
USE triggerDB;
CREATE TABLE orderTBL -- 구매 테이블 
( orderNo INT AUTO_INCREMENT PRIMARY KEY, -- 구매 일련번호 
  userID VARCHAR(5), -- 구매한 회원 아이디 
  prodName VARCHAR(5), -- 구매한 물건 
  orderamount INT -- 구매한 개수 
);
CREATE TABLE prodTBL -- 물품 테이블 
( prodName VARCHAR(5), -- 물건 이름 
  account INT -- 남은 물건 수량 
);
CREATE TABLE deliverTBL -- 배송 테이블 
( deliverNo INT AUTO_INCREMENT PRIMARY KEY, -- 배송 일련번호 
  prodName VARCHAR(5), -- 배송할 물건 
  account INT -- 배송할 물건 개수 
);
 
drop trigger if exists order_insert_trg;
 
delimiter //
create trigger order_insert_trg
after insert on orderTBL for each row
 
begin
 
update prodTBL set account=account-new.orderamount 
where prodname=new.prodname;
 
end //
delimiter ;
 
drop trigger if exists prodtbl_update_trg;
 
delimiter //
create trigger prodtbl_update_trg
after update on prodtbl for each row 
 
begin
 
declare orderamount int;
set orderamount=old.account-new.account;
insert into delivertbl values(null,new.prodname,orderamount);
 
end //
delimiter ;
 
insert into ordertbl values(null,'john','배',5);
insert into ordertbl values(null,'kja','귤',10);
insert into ordertbl values(null,'sujee','사과',8);