pbj0812의 코딩 일기

[SQL] MySQL ROLLBACK 실습하기 본문

ComputerLanguage_Program/SQL

[SQL] MySQL ROLLBACK 실습하기

pbj0812 2020. 9. 15. 00:23

0. 목표

 - MySQL의 ROLLBACK 명령어 실습하기

1. 실습

 1) 테이블 생성

CREATE TABLE pbj_db.user 
(
	ID INT PRIMARY KEY,
    Name VARCHAR(30)
);

 2) 데이터 삽입

INSERT INTO pbj_db.user(ID, Name) VALUES(1, 'a');
INSERT INTO pbj_db.user(ID, Name) VALUES(2, 'b');
INSERT INTO pbj_db.user(ID, Name) VALUES(3, 'c');

 3) 트랜잭션 실행

START TRANSACTION;

 4) 세이브 포인트A 지정

SAVEPOINT A;

 5) 데이터 삽입

INSERT INTO pbj_db.user(ID, Name) VALUES(4, 'd');

 6) 세이브 포인트B 지정

SAVEPOINT B;

 7) 데이터 삽입

INSERT INTO pbj_db.user(ID, Name) VALUES(5, 'e');

 8) 테이블 확인

SELECT * FROM pbj_db.user;

 9) 세이브 포인트 B로 롤백

ROLLBACK TO B;

 10) 테이블 확인

SELECT * FROM pbj_db.user;

 11) 세이브 포인트 A로 롤백

ROLLBACK TO A;

 12) 테이블 확인

  - A로 롤백 먼저하고 B를 롤백하면 B 가 존재하지 않는다는 에러 발생

SELECT * FROM pbj_db.user;

2. 참고

 - [MySQL]TCL (Transaction Control Language)

Comments