-
2.8 SQL 트랜잭션(SAVEPOINT)SQL 과정 2019. 2. 8. 14:27
1. SAVEPOINT
가. 현재의 트랜잭션을 작게 분할하는 명령어
나. 저장된 SAVEPOINT는 ROLLBACK TO SAVEPOINT문을 사용하여 표시한 곳까지 ROLLBACK 할수 있다.
다. 여러 개의 SQL문을 실행하는 트랜잭션 경우 사용자가 트랜잭션 중간 단계에서 SAVEPOINT를 지정하고
차후 ROLLBACK과 함께 사용하여 현재 트랜잭션 내의 특정 SAVEPOINT까지 ROLLBACK할수 있게 한다.
라. SAVEPOINT 도식도
1) COMMIT 명령이 수행된 후 다음 COMMIT명령이 수행 될때까지가 하나의 트랜잭션으로 구성되므로
3개의 명령문(UPDATE, DELETE, INSERT)이 하나의 트랜잭션이 된다.
2) 이렇게 트랜잭션을 구성할 때 중간 중간 SAVEPOINT명령으로 특정위치를 지정해 놓으면
하나의 트랜잭션 내에서도 ROLLBACK TO 명령문을 통해 SAVEPOINT로 표시한 곳까지 ROLLBACK
할수 있다.
2. COMMIT vs SAVEPOINT
가. 큰 작업 단위는 COMMIT을 사용하여 트랜잭션을 묶어두고, 트랜잭션 안에서의 작은 단위는
SAVEPOINT를 설정하는것이 좋다.
나. SAVEPOINT 형식
1) SAVEPOINT로 특정 위치 지정
2) SAVEPOINT로 지정해 놓은 특정 위치로 되돌아가기
* deptno 20을 지우기전에 SAVEPOINT sp1을 지정하고 삭제 후에 ROLLBACK TO sp1입력으로 삭제 전으로 돌아갔다.
* 위(전에 deptno 30을 지운것이다.) ROLLBACK만 하게 되면 세이브 포인터에 불러온 시점 전에
COMMIT된 상태로 돌아간다.
'SQL 과정' 카테고리의 다른 글
2.8 SQL 데이터 무결성 제약 조건(NOT NULL, UNIQUE, CONSTRAINT, USER_CONSTRAINTS) (0) 2019.02.08 2.8 SQL 데이터 무결성 제약 조건 (0) 2019.02.08 2.8 SQL 트랜잭션 명령어(COMMIT, ROLLBACK) (0) 2019.02.08 2.8 SQL 트랜잭션, 데이터베이스, 트렌잭션 제어필요성 (0) 2019.02.08 2.8 SQL 데이터 조작어(MERGE) (0) 2019.02.08