티스토리 뷰
트랜잭션
논리적인 작업 단위
여러 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를 썼는지, 어떤 이름으로 지정했는지 기억해두어야 한다!
'배운 것 기록 > DB' 카테고리의 다른 글
[Oracle] Data Dictionary (0) | 2022.07.21 |
---|---|
스크립트 파일 저장 및 실행(SQL Plus / SQL Developer) (0) | 2022.07.14 |
[Oracle] 인라인 뷰 / 고급 서브쿼리(단일, 다중) (0) | 2022.07.13 |
[Oracle] Inner Join / Outer Join (0) | 2022.07.10 |
[Oracle] Natural / Using JOIN (0) | 2022.07.08 |
댓글