티스토리 뷰

데이터베이스/SQL

[SQL] SQL 기본 (TCL)

Reference M1 2019. 3. 31. 10:05

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로 되돌아 올 수는 없다.
//데이터베이스를 정상적으로 종료해도 자동으로 트랜잭션이 커밋. 이상이 있을 경우 자동 롤백.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
«   2024/12   »
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
글 보관함