SQL - TCL(COMMIT,ROLLBACK)
< TCL > - TRANSACTION CONTROL LANGUAGE
트랜젝션 제어 언어
1) 트랜젝션 (TRANSACTION)
- 데이터베이스의 논리적 연산단위
- 데이터의 변경사항 (DML 추가 , 수정, 삭제)등을 하나의 트랜젝션에 묶어서 처리
- DML문 한개를 수행할 때 트랜젝션이 존재하면 해당 트랜젝션에 같이 묶어서 처리
트랜젝션이 존재하지 않으면 트랜젝션 만들어서 묶음
COMMIT 하기 전까지 변경사항들을 하나의 트랜젝션에 담게된다
커밋을 해야만이 실제 DB에 반영이 된다고 생각하면 된다
2) 트랜젝션의 대상이 되는 SQL : INSERT , UPDATE , DELETE (DML)
-COMMIT : 트랜젝션 종료 처리 후 확정
-ROLLBACK : 트랜젝션 취소
-SAVEPOINT : 임시저장
-COMMIT 진행 : 한트랜젝션에 담겨있는 변경사항들을 실제 DB에 반영 시키겠다는 의미(후에 트랜젝션은 사라진다)
-ROLLBACK 진행 : 한 트랜젝션에 담겨 있는 변경사항들이 삭제(취소) 한 후 마지막 커밋 시점으로 돌아감
-SAVEPOINT 포인트명; 진행: 현재 이 시점에서 해당 포인트 명으로 임시저장점을 정의해두는 것
ROLLBACK 진행시 전체 변경사항들을 다 삭제하는게 아니라 일부만 롤백 가능
**DDL문(CRATE,ALTER,DROP)을 수행하는 순간 기존에 트랜젝션에 있던 변경사항들을
무조건 COMMIT(실제 DB 반영)
즉 DDL 문 수행 전 변경사항이 있었다면 정확히 픽스(COMMIT 또는 ROLLBACK) 하고 수행해야한다.