본문 바로가기
Database/MYSQL

트랜잭션 관리

by 잘먹는 개발자 에단 2024. 9. 19.

트랜잭션 관리

데이터베이스에서 여러개의 SQL 작업을 하나의 작업으로 묶어서 관리하는 기능이다. 

이 때 트랜잭션은 원자성 atom 뭐시기, 일관성 consistency 뭐시기, 고립성 independent 뭐시기, 지속성 durability 뭐시기 의 특성을 가져야 하고 이를 ACID 특성이라고 부른다.

 

MySQL에서 트랜잭션을 제어하는데 사용하는 주요 명령어로는 

START TRANSACTION, COMMIT, ROLLBACK 이 있다.

 

START TRANSACTION

- 트랜잭션을 시작한다.

- 이후 실행되는 쿼리들이 하나의 트랜잭션으로 묶여서 관리된다.

 

COMMIT

- 트랜잭션이 성공적으로 완료되었을 때, 데이터베이스에 영구적으로 반영한다.

- COMMIT을 호출하기 전까지는 데이터가 실제로 저장되지 않는다.

 

ROLLBACK

- 트랜잭션 중에 오류가 발생하거나 작업을 취소하고 싶을 때, 해당 트랜잭션에서 수행된 모든 작업을 원상태로 되돌린다.

- 트랜잭션 시작 후부터 ROLLBACK이 호출될 때까지의 모든 변경 사항이 취소된다.

 

-- 트랜잭션 시작
START TRANSACTION;

-- SQL 작업 실행
INSERT INTO users (name, email) VALUES ('Jane Doe', 'jane@example.com');

-- 오류가 발생했을 경우 작업을 취소
ROLLBACK;