프로젝트를 진행하면서 새로알게된 것인데 트랜잭션은 예시로 설명하면 다음과 같다
은행에 A은행에서 홍길동이 있는 B은행으로 송금하려고 하는데 알수 없는 오류에 인해 A은행 돈은 빠졌지만 홍길동이 있는 B은행 계좌에 입금이 되지 않았는데 이것을 방지하기위해서 오류인해 일이 완벽하게 마쳐지지 않으면 거래를 처음부터 없었던 거래로 돌리는 것을 말한다.
장바구니 담기기능 구현에서 사용한 트랜잭션
with transaction.atomic():
order = Order.objects.create(
user = request.user,
status = Status.objects.get(id=1)
)
order_item = OrderItem.objects.create(
quantity = quantity,
total_price = total_price,
product = product,
order = order
)
DeliveryDate.objects.create(
date = date,
order_item = order_item
)
트랜잭션 사용법
트랜잭션 성질
트랜잭션 명령어