본문 바로가기

Lobo's study room/오라클DB

Oracle DB 트랜잭션

## 트랜잭션

-- 업무처리를 위한 최소 단위

-- 여러개의 dml 문의 묶음
-- DDL, DCL 단독 트랜잭션

## 트랜잭션 특징
-- 원자성 : 5개의 dml문으로 구성된 트랜잭션인 경우 일부만 수행되면 안된다
    ==> ALL OR NOTHING
-- 일관성 : 트랜잭션의 수행이 끝나면 일관성이 유지된다.
-- 고립성 : 
-- 지속성 : 

## 트랜잭션 연산
-- COMMIT  : DB에 영구 저장
-- ROLLBACK  : 작업취소 (트랜잭션 수행 이전 상태 복구)

-------------------------------------------------------------------------------

CREATE TABLE TT1 (
A NUMBER(3),
B NUMBER(3)
);

INSERT INTO TT1 VALUES(10,10);
INSERT INTO TT1 VALUES(20,20);
INSERT INTO TT1 VALUES(30,30);

SELECT * FROM TT1;

다른 유저에게 권한 주기

GRANT SELECT ON TT1 TO PUBLIC;

SELECT * FROM AA15.TT1;

## 트랜잭션 SAVE POINT 실습

create table tt2(
a number(3),
b number(3)
); 

insert into tt2 values(10,10);
insert into tt2 values(20,20);
savepoint sp1;
update tt2 set b = 100 where a=10;
update tt2 set b = 200 where a=20;
savepoint sp2;
insert into tt2 values (50,50);
insert into tt2 values(60,60);

select * from tt2;
rollback to sp2;

commit;

---------------------------------------------------

CREATE ~~~
INSERT ~~~
INSERT ~~~
UPDATE ~~~
GRANT ~~~
DELETE ~~~
INSERT ~~~

----------------------------------------------------

## 트랜잭션 시작

-- 로그인
-- COMMIT / ROLLBACK 이후
-- DDL / DCL 이후

## 트랜잭션 종료

-- 정상적 로그아웃 => COMMIT
-- 비정상적 로그아웃 => ROLLBACK
-- COMMIT / ROLLBACK
-- DDL / DCL 이전

'Lobo's study room > 오라클DB' 카테고리의 다른 글

[실습]커피숍 DB 만들기  (0) 2022.02.10
oracle 설치하기  (0) 2022.02.10
Oracle DB의 INDEX와 시퀀스  (0) 2022.02.10
Oracle DB의 DML  (0) 2022.02.10
Oracle DB의 DDL  (0) 2022.02.10