DX Data School

Transaction 실습

Kim J 2024. 1. 30. 09:31

Transaction(트랜잭션) : 한 번에 이루어져야 하는 작업의 논리적인 단위 All or Nothing

전부 되거나 아무것도 되지 않아야 한다.

> 데이터 베이스 확인

show databases;

> 데이터 베이스 생성

create database dxjh;

> 데이터 베이스 사용

use dxjh;

> 데이터 베이스 삭제

drop database dxjh;

> 실습할 테이블 생성

create table jtable1( 컬럼 이름 자료형 컬럼제약조건

....

테이블 제약조건

.... )engine, auto_increment 의 시작 숫자, 인코딩 등을 설정

> 실습 테이블

CREATE table jtable1
(account INT NOT NULL PRIMARY KEY,
balance INT,
j_id CHAR(8),
j_name VARCHAR(10) NOT NULL,
j_number INT NOT NULL,
addr CHAR(2) NOT NULL,
phone1 CHAR(3),
phone2 CHAR(8),
height SMALLINT,
debut_date DATE );
​

> 데이터 삽입

INSERT INTO jtable1 VALUES(1, 30, 'TWC', '트와이스', 9, '서울', '02', '11111111', 167, '2015.10.19');
INSERT INTO jtable1 VALUES(2, 40, 'BLK', '블랙핑크', 4, '경남', '055', '22222222', 163, '2016.08.08');
INSERT INTO jtable1 VALUES(4, 60, 'OMY', '오마이걸', 7, '서울', NULL, NULL, 160, '2015.04.21');
INSERT INTO jtable1 VALUES(3, 50, 'WMN', '여자친구', 6, '경기', '031', '33333333', 166, '2015.01.15');
INSERT INTO jtable1 VALUES(5, 70, 'GRL', '소녀시대', 8, '서울', '02', '44444444', 168, '2007.08.02');
INSERT INTO jtable1 VALUES(6, 80, 'ITZ', '잇지', 5, '경남', NULL, NULL, 167, '2019.02.12');

> 트랜잭션 취소

- 트랜잭션이 만들어지는 시점으로 이동 (rollback)

rollback;

★★★★★ SQL 성공할 때 마다 자동으로 Commit 실행 되므로 DDL, DCL 시 다른 공간에서 진행하는 것이 안전(?)하다.

ex) 데이터 삽입 후 rollback의 경우 데이터 삽입이 취소 되지만, 데이터 삽입 후 새로운 테이블을 생성 한 후에 rollback을 할 경우 삽입 된 데이터는 취소되지 않고 테이블 생성 이후 단계로 rollback이 진행된다.

(테이블 생성 이전 삽입 한 데이터 조회 가능)

> savepoint 지정

테이블에 2개의 데이터 삽입 후 세이브포인트 지정

INSERT INTO jtable1 VALUES(1, 30, 'TWC', '트와이스', 9, '서울', '02', '11111111', 167, '2015.10.19');

INSERT INTO jtable1 VALUES(2, 40, 'BLK', '블랙핑크', 4, '경남', '055', '22222222', 163, '2016.08.08');

​

savepoint s1;

​

다시 2개의 데이터 추가 삽입

IINSERT INTO jtable1 VALUES(3, 60, 'OMY', '오마이걸', 7, '서울', NULL, NULL, 160, '2015.04.21');

INSERT INTO jtable1 VALUES(4, 50, 'WMN', '여자친구', 6, '경기', '031', '33333333', 166, '2015.01.15');

​

데이터 조회 : 4개의 행

> rollback 명령이 2가지

rollback; - 데이터 0개 조회

rollback to s1; 데이터 2개 조회 ( savepoint 지정 전 입력한 데이터 2행 조회가능 )

'DX Data School' 카테고리의 다른 글

NoSQL (MongoDB)  (1) 2024.01.30
Windows Function  (0) 2024.01.30
[SQL]DDL, DML, DCL, DQL, TCL 개념과 종류  (0) 2024.01.30
1~4주차 복습  (0) 2024.01.30
홈페이지 만들기  (1) 2024.01.30