ROLLBACK
- 작업 중 문제가 발생되어서 트랜잭션의 처리 과정에서 발생한 발견사항을 취소하는 명령어입니다.
- ROLLBACK 역시 하나의 트랜잭션 과정을 종료하게 됩니다.
- 트랜잭션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌립니다.
- Transaction(INSERT, UPDATE, DELETE) 작업 내용을 취소합니다.
- 이전 COMMIT한 곳 까지만 복구합니다.
COMMIT과 ROLLBACK의 장점
- 데이터 무결성이 보장됩니다.
- 영구적인 변경 전에 데이터의 변경 사항을 확인할 수 있습니다.
- 논리적으로 연관된 작업을 그룹화 할 수 있습니다.
자동 COMMIT, ROLLBACK 되는 경우
- SQL*PLUS가 정상 종료되었다면 자동으로 COMMIT 되지만, 비정상 종료되었다면 자동으로 ROLLBACK 합니다.
- DDL과 DCL 명령문이 수행된 경우 자동으로 COMMIT 됩니다.
- 정전이 발생했거나 컴퓨터가 DOWN 된 경우 자동으로 ROLLBACK 됩니다.
ROLLBACK 수행 과정
- 롤백 명령은 마지막으로 수행한 커밋 명령까지만 정상 처리(①, ②)된 상태로 유지하고 그 이후에 수행했던 모든 DML 명령어 작업(③, ④, ⑤)들을 취소시켜 이전 상태로 원상 복구시킵니다.
- 트랜잭션은 이렇듯 ALL - OR - Nothing 방식으로 DML 명령어들을 처리합니다.
'2. Database > 2_1 Oracle' 카테고리의 다른 글
[Oracle] ROWID란? (0) | 2020.05.19 |
---|---|
[Oracle] INTERVAL DAY TO SECOND - 두 날짜 사이 기간 저장하기 (0) | 2020.05.19 |
[Oracle] FOREIGN KEY(외래키) 제약 조건 설정 (0) | 2020.05.15 |
[Oracle] INSERT ALL - 여러 테이블에 데이터 추가하는 방법 (0) | 2020.05.15 |
[Oracle] REGEXP_REPLACE() - 특정 패턴을 찾아 바꾸는 함수 (1) | 2020.03.26 |