트랜잭션 관리
데이터베이스에서 여러개의 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;