DB·SQL
트랜잭션
Transaction
💡 초보자 설명
여러 데이터베이스 변경을 한 묶음으로 처리해, 중간에 실패하면 전부 되돌리는 기능
🧠 쉬운 비유·기억법
한 계좌에서 돈을 빼고 다른 계좌에 넣는 일을 한 장부로 처리합니다. 넣기가 실패하면 뺀 것도 취소합니다.
📌 실제 사용 상황
주문과 재고, 결제와 포인트처럼 둘 중 하나만 저장되면 안 될 때 나옵니다. BEGIN, COMMIT, ROLLBACK이나 DB::transaction을 볼 때 씁니다.
⚠️ 주의사항
묶음 안에서 오류가 나면 그 안의 변경은 확정되지 않습니다. SQLite는 파일 하나라 쓰는 동안 다른 쓰기가 기다릴 수 있고, MySQL이나 Postgres와 잠금 방식이 다릅니다.