Deeb
디비의 DB
Deeb
전체 방문자
오늘
어제
  • 분류 전체보기 (243)
    • Frontend (63)
      • HTML & CSS (27)
      • JavaScript (17)
      • jQuery (8)
      • React (6)
    • Backend (98)
      • Java (19)
      • JDBC (2)
      • Servlet & JSP (13)
      • Spring (17)
      • Project (0)
      • 개발 공부 (11)
      • 문제 풀이 (8)
      • Algorithm (1)
      • DataBase (0)
      • Oracle (18)
      • Error (8)
    • Knou (1)
    • Review (14)
    • TIL (33)
    • 삽질기록 (8)
    • deebtionary (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 리액트
  • 추천
  • 서평단
  • DB
  • GIT
  • 공부
  • css
  • alter
  • 자바
  • 방송대
  • 배열
  • 클래스
  • 삭제
  • CLASS
  • 2학기
  • DBMS
  • 다형성
  • 후기
  • 정의
  • 한빛미디어
  • 정처기
  • 에러
  • For
  • js
  • 방통대
  • 함수
  • 기초
  • 책
  • Java
  • HTML

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Deeb

디비의 DB

[DB] TCL(TRANSGACTION CONTROL LANGUAGE)
Backend/Oracle

[DB] TCL(TRANSGACTION CONTROL LANGUAGE)

2021. 9. 27. 21:47
더보기

목차

1. COMMIT

2. ROLLBACK

3. SAVEPOINT

✍TCL(TRANSGACTION CONTROL LANGUAGE)

Transgaction :  데이터베이스의 논리적 연산 단위 
TCL : 트랜잭션 제어 언어

데이터의 변경 사항을 묶어 하나의 트랜잭션에 담아 처리한다. 

트랜잭션에 담겨지는 대상이 되는 SQL
: INSERT, UPDATE, DELETE (DML, 데이터 조작 언어)

 

SQL DEVELOPER에서 INSERT, UPDATE, DELETE 작성 시 바로 DB에 반영되는것이 아니라 메모리 임시버퍼에서 COMMIT 해야 DB에 반영된다.

 

COMMIT한 것을 없애고 싶을 때 : ROLLBACK

 

SVAPOINT S1을 중간 저장한다고 했을 때 ROLLBACK TO S1시 SAVEPOINT한 저장지점까지만 삭제할 수 있게 한다. 

 

COMMIT하면 다 저장되고 ROLLBACK하면 다 사라지니깐 논리적 연산 단위라고 한다.


🚩 COMMIT

: 메모리 버퍼에 임시 저장된 데이터 변경 사항(INSERT, UPDATE, DELETE)을 DB에 실제로 반영한다. 

예제

SELECT * FROM 테이블명;
COMMIT; 

➡ 현재 메모리 임시 버퍼(트랜잭션)를 DB에 반영


🚩  ROLLBACK

: 메모리 버퍼에 임시 저장된 데이터 변경 사항을 삭제하고 마지막 COMMIT 상태로 돌아가는 것이다. 

예제

SELECT * FROM 테이블명;
COMMIT; 
- 현재 메모리 임시 버퍼(트랜잭션)를 DB에 반영

DELETE FROM 테이블명
WHERE 컬럼명 = '데이터';
- 삭제 내용이 트랜잭션에 임시 저장

SELECT * FROM 테이블명;
- 위의 데이터 삭제 확인

ROLLBACK; 

➡ 트랜잭션 내용을 삭제하고 마지막 COMMIT 상태로 돌아간다. 

== DELETE 적용되기 전의 상태


🚩 SAVEPOINT

: 저장 지점을 정의하여 ROLLBACK 시 트랜잭션 전체의 내용을 삭제하는 것이 아닌
저장된 지점까지만 삭제할 수 있도록 하는 것이다. 
Rollback하는 시점을 제어 

예제

DELETE FROM 테이블명 WHERE 컬럼명= '데이터 1';

SAVEPOINT SP1;
-- 데이터 1이 삭제된 상태를 임시 저장

DELETE FROM 테이블명 WHERE 컬럼명= '데이터 2';
SELECT * FROM 테이블명;

ROLLBACK TO SP1;

➡ 데이터2만 복구 ==  SP1 지점까지만 롤백


🚩  TCL 주의사항

  • TCL 구문은 DML(INSERT, UPDATE, DELETE )에만 적용된다.
  • DML 구문 작성 중 DDL 또는 DCL 구문이 수행될 경우
    트랜잭션 내용이 바로 DB에 반영된다. (자동 COMMIT)
반응형
저작자표시 비영리 변경금지 (새창열림)

'Backend > Oracle' 카테고리의 다른 글

[DB] DCL :: 권한, 사용자 계정 생성하는 법  (0) 2021.09.28
[DB] DDL :: ALTER , DROP  (0) 2021.09.28
[DB] DDL : CREATE, 제약조건 CHECK  (0) 2021.09.27
[DB] DML (INSERT, UPDATE, MERGE, DELETE)  (0) 2021.09.25
[DB] SUBQUERY  (0) 2021.09.23
    'Backend/Oracle' 카테고리의 다른 글
    • [DB] DCL :: 권한, 사용자 계정 생성하는 법
    • [DB] DDL :: ALTER , DROP
    • [DB] DDL : CREATE, 제약조건 CHECK
    • [DB] DML (INSERT, UPDATE, MERGE, DELETE)
    Deeb
    Deeb

    티스토리툴바