[DataBase] SQL의 트랜잭션 제어어(TCL)

MINJEE·2023년 8월 27일

SMHRD_2_DataBase

목록 보기
6/9
post-thumbnail

트랜잭션 (Transaction)

: 관계형 데이터베이스에서 하나의 작업 또는 밀접하게 연관되어 있는 작업 수행을 위해, 나눌 수 없는 최소 수행 단위
  • 더 이상 분할할 수 없는 최소 수행 단위
  • 한 개 이상의 데이터 조작 명령어(DML)로 이루어짐
  • ALL OR NOTHING : 하나의 트랜잭션 내에 있는 여러 명령어를 한 번에 수행하여 작업을 완료하거나, 아예 모두 수행하지 않는 상태, 즉 모든 작업을 취소 한다
  • TCL(Transaction Control Language) : 트랜잭션을 제어하기 위해 사용하는 명령어

TCL (트랜잭션 제어어)

ROLLBACK

  • 트랜잭션 취소 : 앞서 실행한 DML 모두 취소
    ROLLBACK; -- 변경사항 취소

COMMIT

  • 트랜잭션 영원히 반영
    COMMIT; -- 변경사항 승인

예시

-- 트랜잭션 시작!!
create table swcamp(
	no number(100) not null,
    name varchar(50) not null,
    age number(10),
    birth date,
    constraint pk_swcamp primary key (no)
);
-- DDL 사용 => 트랜잭션 종료!!

-- 새로운 트랜잭션 시작!!
insert into swcamp values(1, '홍길동', 26, '1998-11-11');
insert into swcamp values(2, '세종대왕', 24, '1995-05-05');

update swcamp set age=29 where no=2;

rollback;
-- 롤백으로 현재 트랜잭션의 모든 DML작업(insert 2개, update1개) 취소 => 트랜잭션 종료!!

-- 새로운 트랜잭션 시작!!
insert into swcamp values(3, '철수', 25, '1999-01-01');
insert into swcamp values(4, '영희', 24, '2000-02-02');

commit;
-- 현재 트랜잭션 시작 이후 수행된 모든 DML작업(insert 2개) 결과를 데이터베이스에 영구히 반영 => 트랜잭션 종료!!

-- 새로운 트랜잭션 시작!!
-- ...
profile
개발, 분석 배운 내용 정리하기!

0개의 댓글