전에 에러는 해결했는데요.
delimiter //;
create trigger sale_stat after
insert on att_order_dt
for each row
begin
IF new.pcode <> old.pcode then
INSERT INTO att_sale(pcode, sqty, stotal)
values(
new.pcode,
new.quantity,
new.price
);
else
update att_sale
set
sqty = sqty + new.quantity,
stotal = stotal + new.price;
end if;
end //;
주문테이블에 동일한 상품코드가 등록된다면,
매출테이블에 수량과 가격을 더할려고 하는데,
new, old를 써서 상품코드를 비교할려고 하는데 안 되더라구요.
알려주시면 감사하겠습니다. ㅜㅠ
Mysql 을 잘 몰라서 ^^; 도움이 될련가 모르겠지만...
1. Insert 에 대한 Trigger는 기본적으로 OLD 값을 가지지 않습니다
- 새로 들어 오는 값만 존재하고 예전값을 없기 때문입니다
- OLD 값을 가지는 경우는 Update나 Delete가 있겠네요.
2. MySQL On Duplicate Key Update Statement 사용
- Mysql Insert 일 경우 동일한 PK로 중복 입력 될 경우 우회 구문
- 반드시, Pcode는 Primary Key 이어야 합니다.
delimiter //;
create trigger sale_stat after
insert on att_order_dt
for each row
begin
INSERT INTO att_sale(pcode, sqty, stotal)
values(
new.pcode,
new.quantity,
new.price
)
ON DUPLICATE KEY
update sqty = sqty + new.quantity,
stotal = stotal + new.price;
end //;
아래 사이트 참고 했습니다. 전 Mysql 몰라용 ㅜㅜ