트랜잭션
-
모든 구문이 성공 OR 모든 구문 실패
- 은행 송금 예시
- 원자성 (atomicity)
-- 트랜잭션 시작
START TRANSACTION;
DELETE FROM sections
WHERE section_id > 0;
SELECT * FROM sections;
-- 롤백
ROLLBACK;
SELECT * FROM sections;
COMMIT
메모리상의 변화를 영구저장
START TRANSACTION;
INSERT INTO sections
(section_name, floor)
VALUES ('동남아', 2);
SELECT * FROM sections;
ROLLBACK;
SELECT * FROM sections;
START TRANSACTION;
INSERT INTO sections
(section_name, floor)
VALUES ('동남아', 2);
SELECT * FROM sections;
-- 커밋
COMMIT;
ROLLBACK;
SELECT * FROM sections;
SAVEPOINT
롤백할 중간지점 설정
START TRANSACTION;
INSERT INTO sections
(section_name, floor)
VALUES ('인도식', 2);
SAVEPOINT indian;
INSERT INTO sections
(section_name, floor)
VALUES ('남미식', 3);
SELECT * FROM sections;
ROLLBACK TO indian;
SELECT * FROM sections;
COMMIT;