티스토리 뷰
TCL(Transaction Control Language)
DCL(Data Control Language) 데이터를 제어하는 명령어에서 트랜잭션을 제어하는 명령어인 COMMIT, ROLLBACK, SAVEPOINT 만을 따로 분리해서 TCL 이라고 표현한다.
트랜잭션 개념
- 데이터베이스에서는 데이터의 일관성과 무결성을 보장하기 위해서는 반드시 트랜젝션 관리가 필요하다.
- 트랜잭션이란 데이터베이스 내에서 하나의 그룹으로 처리되어야 하는 명령문들을 모아 놓은 작업 단위이다.
- 예를들어 그룹이 하나 이상의 SQL문장으로 구성되어 있다고 가정할 경우 4개의 SQL문장이 하나의 그룹으로 묶여진 작업단위의 경우 4개의 SQL문장이 완전히 처리되거나 All-OR-Nothing방식으로 처리된다.
1. COMMIT
INSERT INTO USER (USER_ID, USER_NAME, ORG_ID, TEL_NO) VALUES ('U00001','홍길동','000000','01011112222');
COMMIT;
//삽입하고 COMMIT을 통해 테이블에 적용
// UPDATE, DELETE 등도 DML 사용 후 COMMIT; 으로 적용
2. ROLLBACK
UPDATE USER
SET TEL_NO = '00011114444';
ROLLBACK;
// 지난 COMMIT 까지 변경 사항을 취소
3. SAVEPOINT
SAVE SAVEPOINT SVPT1;
INSERT INTO USER (USER_ID, USER_NAME, ORG_ID, TEL_NO) VALUES ('U00001','홍길동','000000','01011112222');
ROLLBACK TO SVPT1;
//SAVEPOINT 를 지정하면 현 시점에서 해당 SAVEPOINT까지 트랜잭션의 일부를 롤백할 수 있다.
//SAVEPOINT 를 여러개를 지정했을 경우에도 해당 SAVEPOINT까지 롤백시킬 수 있으나, 과거의 SAVEPOINT로 갔다가 미래의 SAVEPOINT로 되돌아 올 수는 없다.
//데이터베이스를 정상적으로 종료해도 자동으로 트랜잭션이 커밋. 이상이 있을 경우 자동 롤백.
'데이터베이스 > SQL' 카테고리의 다른 글
[SQL] 오라클(Oracle) 계정 생성 및 권한 부여 (0) | 2019.05.16 |
---|---|
[SQL] 로우(Row) VS 레코드(Recode) VS 튜플(Tuple) 차이 (0) | 2019.05.15 |
[SQL] DELETE, TRUNCATE, DROP 차이 (0) | 2019.03.31 |
[SQL] SQL 기본 (DML) (0) | 2019.03.29 |
[SQL] SQL 기본 (DDL) (0) | 2019.03.28 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG
- spring
- 정렬 알고리즘
- 이직
- 제주도 여행
- 프로그래머스
- Collection
- 경력관리
- 오라클
- 개발환경
- Tomcat
- React
- Eclipse
- 자바스크립트
- sort algorithm
- SQL
- 리액트 16
- 소프트웨어공학
- 리액트
- Java
- 프로그래머
- 자바
- 리눅스 명령어
- Maven
- 제주도 3박4일 일정
- 성능분석
- Linux 명령어
- javascript
- effective java
- 회고
- 오라클 내장 함수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함