데이터베이스를 다루다 보면 트랜잭션(Transaction)을 제어하는 명령어를 자주 접하게 됩니다. 그중 가장 핵심적인 두 가지가 바로 COMMIT과 ROLLBACK입니다. 이 글에서는 두 명령어의 개념과 동작 방식, 그리고 서로 어떻게 다른지 자세히 살펴보겠습니다.
COMMIT이란?
COMMIT은 현재 진행 중인 트랜잭션에서 수행한 모든 변경 사항을 영구적으로 확정하는 명령어입니다.
- 현재 트랜잭션에서 수행된 수정 사항을 유효하게 확정합니다.
- COMMIT 문이 한번 실행되면, 해당 트랜잭션은 더 이상 ROLLBACK으로 되돌릴 수 없습니다.
- 트랜잭션이 성공적으로 완료되었을 때 호출됩니다.
사용 문법
COMMIT;
ROLLBACK이란?
ROLLBACK은 현재 트랜잭션에서 수행한 모든 변경 사항을 취소하고 원래 상태로 되돌리는 명령어입니다.
- 현재 트랜잭션에서 수행된 변경 사항을 모두 제거합니다.
- ROLLBACK이 실행되면 데이터베이스는 트랜잭션 시작 이전의 상태로 복원됩니다.
- 즉, 트랜잭션의 첫 번째 문장이 실행되기 전 상태로 되돌아갑니다.
- 트랜잭션 실행 도중 오류가 발생하여 중단되었을 때 주로 사용됩니다.
사용 문법
ROLLBACK;
COMMIT과 ROLLBACK의 핵심 차이점
| 구분 | COMMIT | ROLLBACK |
|---|---|---|
| 역할 | 변경 사항을 영구적으로 저장 | 변경 사항을 취소하고 이전 상태로 복원 |
| 실행 시점 | 트랜잭션이 성공적으로 완료되었을 때 | 트랜잭션이 도중에 중단되거나 오류가 발생했을 때 |
| 되돌리기 가능 여부 | 실행 후에는 ROLLBACK 불가 | 실행 시 데이터베이스가 이전 상태로 복원됨 |
마무리
COMMIT과 ROLLBACK은 트랜잭션의 원자성(Atomicity)을 보장하는 핵심 명령어입니다. 작업이 성공적으로 끝나면 COMMIT으로 결과를 확정하고, 오류가 발생하면 ROLLBACK으로 안전하게 되돌리는 방식으로 데이터의 일관성을 유지할 수 있습니다. 두 명령어의 차이를 정확히 이해하면 실무에서 데이터 무결성 관리에 큰 도움이 됩니다.