데이터베이스가 하나로 다루는 작업
트랜잭션은 SQL 문장 여러 개를 전부 성공하거나 전부 없던 일로 만드는 단위야. ACID의 4글자 약속이 실제 명령으로 드러나는 자리이기도 해. BEGIN으로 열고 COMMIT으로 확정하며, 실패하면 ROLLBACK으로 모든 변경을 버려.
autocommit과 명시적 경계
BEGIN을 쓰지 않으면 각 SQL 문장은 자체 트랜잭션으로 실행돼. 한 문장으로 끝나는 일에는 괜찮지만 여러 테이블의 변경이 함께 확정되어야 한다면 BEGIN ... COMMIT으로 묶어야 해.
중간까지만 되돌리는 저장점
SAVEPOINT를 두면 열린 트랜잭션 안의 특정 지점으로 돌아갈 수 있어. 앞서 성공한 작업은 남기고 일부 단계만 다시 해야 하는 긴 일괄 작업에 유용하지만, 경계를 복잡하게 숨기는 수단으로 남용하지 마.