티스토리 뷰

배운 것 기록/DB

트랜잭션

키죽 2022. 7. 14. 17:12

트랜잭션

논리적인 작업 단위

여러 DML이 모여 하나의 트랜잭션이 구성, DML 작업 후 commit, rollback으로 트랜잭션을 종료한다.

하나의 DDL 또는 DCL 구문이 하나의 트랜잭션을 구성된다.

 

TCL 트랜잭션 제어 명령어

COMMIT  트랜잭션을 영구히 저장한다.

ROLLBACK  트랜잭션을 처음으로 되돌린다.

SAVEPOINT  트랜잭션 진행 중 되돌아갈 지점을 생성한다.

 

 

트랜잭션 시작 및 종료

시작 첫번째 DML 구문 실행 시
종료 DDL / DCL 구문 실행 시 autocommit
SQL Plus/SQL Developer 정상 종료(exit 입력) 시 autocommit
시스템 장애/비정상종료 시 autorollback

DDL과 DCL은 auto-commit을 내포하고 있어, 구문은 실행과 동시에 DB에 바로 적용된다(작업에 신중할 것!)

오라클은 auto-commit을 권장하지 않아 commit 전의 임시 데이터를 미리 볼 수 있다.

 

SAVEPOINT test;		-- test 라는 SAVEPOINT 생성
ROLLBACK TO test;	-- test 지점으로 롤백

SAVEPOINT 지정 시 원하는 지점에서부터 작업한 내역의 취소가 가능하다.

불러오기만 할 뿐, 따로 저장되지 않으니 저장 시 commit을 쓰자!

 

 

트랜잭션의 특징이자 단점

SAVEPOINT는 트랜잭션 진행 중에만 잠시 사용하는 논리적인 정보이기 때문에 DB 사전에까지도 기록이 남지 않는다.

본인이 SAVEPOINT를 썼는지, 어떤 이름으로 지정했는지 기억해두어야 한다!

 

 

댓글
최근에 올라온 글
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함