TCL이란?
TCL(Transaction Control Language)은 트랜잭션 제어를 위해 사용한다.
여기서 말하는 트랜잭션은 데이터 처리의 한 단위이다.
즉, 다수의 SQL문을 하나의 논리적인 작업 단위로 보는것이다.
트랜잭션 특성
- 원자성(Automicity) : 트랜잭션에 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야 한다. (= All or Nothing)
- 일관성(Consistency) : 트랜잭션이 실행되기 전의 데이터베이스 내용이 잘못되어있지 않다면 실행된 이후에도 데이터베이스 내용에 잘못이 있으면 안 된다.
- 고립성(Isolation) : 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안 된다.
- 지속성(Durability) : 트랜잭션이 성공적으로 수행되면 갱신한 데이터베이스의 내용은 영구적으로 저장된다.
COMMIT
저장되지 않은 모든 데이터를 데이터베이스에 저장하고 현재의 트랜잭션을 종료한다.
-- TBL_STUDENT 테이블에 데이터 추가
INSERT INTO TBL_STUDENT VALUES (4, '학생4', '컴퓨터공학과', 'W');
INSERT INTO TBL_STUDENT VALUES (5, '학생5', '컴퓨터공학과', 'W');
-- 추가한 데이터 COMMIT
COMMIT;
- 실행결과
ROLLBACK
저장되지 않은 모든 데이터 변경 사항을 취소하고 현재의 트랜잭션을 종료한다.
-- DELETE문을 통해 ID가 4인 데이터 삭제
DELETE FROM TBL_STUDENT WHERE ID = 4;
-- DELETE 수행 전으로 롤백
ROLLBACK;
SAVEPOINT
트랜잭션을 전체 롤백하지 않고 특정 지점으로 롤백한다.
DELETE FROM TBL_STUDENT WHERE ID = 4;
-- SAVEPOINT 지정
SAVEPOINT A;
DELETE FROM TBL_STUDENT WHERE ID = 3;
SELECT * FROM TBL_STUDENT;
-- SAVEPOINT A로 롤백
ROLLBACK TO A;
-- SAVEPOINT A로 롤백 후 문제없다면 COMMIT
COMMIT;
참고하면 좋은 포스팅
'DB > 오라클(Oracle)' 카테고리의 다른 글
[Oracle] 오라클 문자열 합치기(CONCAT, ||) (0) | 2023.11.24 |
---|---|
[Oracle] 오라클 별칭(AS) 사용법 (0) | 2023.11.23 |
오라클 DML(INSERT, SELECT, UPDATE, DELETE) (2) | 2023.11.20 |
오라클 DDL(CREATE, ALTER, RENAME, TRUNCATE, DROP) (0) | 2023.11.18 |
오라클 테이블 생성(CREATE TABLE, CONSTRAINT, COMMENT) (0) | 2023.11.09 |