Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

SQL에서 COMMIT과 ROLLBACK의 차이점 완벽 정리

데이터베이스를 다루다 보면 트랜잭션(Transaction)을 제어하는 명령어를 자주 접하게 됩니다. 그중 가장 핵심적인 두 가지가 바로 COMMITROLLBACK입니다. 이 글에서는 두 명령어의 개념과 동작 방식, 그리고 서로 어떻게 다른지 자세히 살펴보겠습니다.

COMMIT이란?

COMMIT은 현재 진행 중인 트랜잭션에서 수행한 모든 변경 사항을 영구적으로 확정하는 명령어입니다.

  • 현재 트랜잭션에서 수행된 수정 사항을 유효하게 확정합니다.
  • COMMIT 문이 한번 실행되면, 해당 트랜잭션은 더 이상 ROLLBACK으로 되돌릴 수 없습니다.
  • 트랜잭션이 성공적으로 완료되었을 때 호출됩니다.

사용 문법

COMMIT;

ROLLBACK이란?

ROLLBACK은 현재 트랜잭션에서 수행한 모든 변경 사항을 취소하고 원래 상태로 되돌리는 명령어입니다.

  • 현재 트랜잭션에서 수행된 변경 사항을 모두 제거합니다.
  • ROLLBACK이 실행되면 데이터베이스는 트랜잭션 시작 이전의 상태로 복원됩니다.
  • 즉, 트랜잭션의 첫 번째 문장이 실행되기 전 상태로 되돌아갑니다.
  • 트랜잭션 실행 도중 오류가 발생하여 중단되었을 때 주로 사용됩니다.

사용 문법

ROLLBACK;

COMMIT과 ROLLBACK의 핵심 차이점

구분COMMITROLLBACK
역할변경 사항을 영구적으로 저장변경 사항을 취소하고 이전 상태로 복원
실행 시점트랜잭션이 성공적으로 완료되었을 때트랜잭션이 도중에 중단되거나 오류가 발생했을 때
되돌리기 가능 여부실행 후에는 ROLLBACK 불가실행 시 데이터베이스가 이전 상태로 복원됨

마무리

COMMIT과 ROLLBACK은 트랜잭션의 원자성(Atomicity)을 보장하는 핵심 명령어입니다. 작업이 성공적으로 끝나면 COMMIT으로 결과를 확정하고, 오류가 발생하면 ROLLBACK으로 안전하게 되돌리는 방식으로 데이터의 일관성을 유지할 수 있습니다. 두 명령어의 차이를 정확히 이해하면 실무에서 데이터 무결성 관리에 큰 도움이 됩니다.