트랜잭션(Transaction)
- 데이터베이스의 상태를 변화시키는 일종의 작업 단위
START TRANSACTION | COMMIT, ROLLBACK이 나올 때까지 실행되는 모든 SQL |
COMMIT | 모든 코드를 실행 |
ROLLBACK | STRAT TRANSACTION 실행 전 상태로 되돌림 |
SAVEPOINT | 현재의 트랜잭션을 작게 분할하는 명령어 |
📌 DDL이나 DCL이 중간에 실행되면 COMMIT된다. ROLLBACK할 수 없다!
create table test_transaction(
val varchar(10)
);
ROLLBACK
start transaction;
insert into test_transaction values('a');
insert into test_transaction values('b');
insert into test_transaction values('c');
rollback;
select *
from test_transaction;
- rollback 후 test_transcation 테이블에 아무것도 없다.
COMMIT
start transaction;
insert into test_transaction values('a');
insert into test_transaction values('b');
insert into test_transaction values('c');
commit;
select *
from test_transaction;
- commit 후 insert한 value가 들어가 있는 것을 확인할 수 있다.
SAVEPOINT
start transaction;
insert into test_transaction values('a');
insert into test_transaction values('b');
insert into test_transaction values('c');
savepoint p1;
insert into test_transaction values('d');
insert into test_transaction values('e');
insert into test_transaction values('f');
select *
from test_transaction;
rollback to p1;
select *
from test_transaction;
'DB' 카테고리의 다른 글
[MySQL] 함수(Function) - 그룹(aggregate) (0) | 2022.03.16 |
---|---|
[MySQL] 함수(Function) - 숫자 (0) | 2022.03.16 |
SQL 샘플데이터 사용 (0) | 2022.03.16 |
[MySQL] SQL - DML(INSERT, UPDATE, DELETE, SELECT) (0) | 2022.03.15 |
[MySQL] mac에서 mysql 사용자 생성하기 (0) | 2022.03.15 |