트랜잭션 실습
주문 생성과 재고 차감은 함께 성공해야 한다
orders, order_items, products를 하나의 원자적 단위로 묶고, 재고
차감이 0행이면 전체를 취소한다.
실패 기준
재고 부족, 주문 상세 누락, 총액 불일치
확인 전 COMMIT 금지
orders
주문 헤더와 상태를 만든다
order_id가 상세와 재고 처리 기준이 됨
order_items
상품, 수량, 단가를 기록한다
주문 총액 대조에 사용
products
stock을 조건부로 차감한다
영향 행 수 1개가 핵심 신호
| 단계 | 성공 신호 | 실패 처리 |
|---|---|---|
| 주문 생성 | orders INSERT 성공, 주문 키 확보 | 이후 작업 없이 ROLLBACK |
| 상세 기록 | order_items 행 수와 금액 일치 | 주문 헤더까지 취소 |
| 재고 차감 | stock >= 수량 조건으로 1행 UPDATE | 0행이면 재고 부족으로 ROLLBACK |
조건부 UPDATEstock >= quantity 조건으로 음수 방지
영향 행 수드라이버가 반환한 row count 확인
최종 대조주문 총액, 상세 합계, 재고 수량 점검