- COMMIT 명령어
Transaction(INSERT, UPDATE, DELETE) 작업 내용을 실제 DB에 저장합니다.
이전 데이터가 완전히 UPDATE 됩니다.
모든 사용자가 변경된 데이터의 결과를 볼 수 있습니다.
- ROLLBACK 명령어
Transaction(INSERT, UPDATE, DELETE) 작업 내용을 취소합니다.
이전 COMMIT한 곳 까지만 복구합니다.
-- 트랜잭션(Transaction)
-- 여러개의 sql을 하나의 단위로 처리하는 것
-- 트랜잭션이 가지는 모든 작업이 모두 정상처리 되어야 트랜잭션이 완료되었다고 하는것
truncate table emp10;
insert into emp10
select * from emp;
commit;
select * from emp10;
select * from dept01;
-- 부서 테이블에 데이터 하나를 저장 - 정상
-- 사원 테이블에 새로운 사원을 입력 - 오류
insert into dept01 values (50, 'RD', 'SEOUL');
insert into emp10(empno, ename, job, sal) values ('ten', 'TEN', 'MANAGER', 2500);
rollback; -- 오류가 발생해서 초기화 (마지막저장단계 commit단계로 이동)
-- 새로운 트랜잭션 시작
insert into dept01 values (50, 'RD', 'SEOUL');
insert into emp10(empno, ename, job, sal) values (7777, 'TEN', 'MANAGER', 2500);
select * from emp10;
select * from dept01;
commit;
-- 새로운 트랜잭션 시작
update emp10
set mgr=(select empno from emp10 where ename='KING');
-- 잘못처리된 작업이라고 하면, rollback;
rollback;
- COMMIT 명령어과 ROLLBACK 명령어의 장점
데이터 무결성이 보장됩니다.
영구적인 변경 전에 데이터의 변경 사항을 확인할 수 있습니다.
논리적으로 연관된 작업을 그룹화할 수 있습니다.
- 자동 커밋
- DDL 문에는 CREATE, ALTER, DROP, RENAME, TRUNCATE 등이 있습니다.
- 이러한 DDL문은 자동으로 커밋(AUTO COMMIT)이 발생됩니다.
'DB > Oracle SQL' 카테고리의 다른 글
[ORACLE SQL] 인덱스 (0) | 2020.11.13 |
---|---|
[ORACLE SQL] 시퀀스 / CURRVAL / NEXTVAL (0) | 2020.11.13 |
[ORACLE SQL] 가상테이블 / 뷰(view) & 로우넘(rownum) (0) | 2020.11.13 |
[ORACLE SQL] DML / INSERT / UPDATE (0) | 2020.11.12 |
[ORACLE SQL] DDL_무결성 제약조건 (0) | 2020.11.12 |
[ORACLE SQL] DDL _ALTER TABLE / 테이블 칼럼 추가/변경/삭제 (0) | 2020.11.12 |
[ORACLE SQL] DDL _ CREATE TABLE / 테이블 생성 (0) | 2020.11.12 |