SQL - TRANSACTION

김규린·2024년 8월 23일
0

Data Base

목록 보기
12/20

1. TRANSACTION

  • 일의 논리적 단위
  • 데이터베이스에서 한 번에 수행되는 작업
  • 시작, 진행, 종료 단계를 가지며 만약 중간에 오류가 발생하면 롤백(시작 이전 단계로 되돌리는 작업)을 수행하고 데이터 베이스에 제대로 반영하기 위해서는 커밋(이후 롤백이 되지 않음)을 진행

1. TRANSACTION 활용

  • autocommit을 비활성화 해야함
-- 첫번째로 할 일: AUTOCUMMIT 비활성화

SET AUTOCOMMIT = 0;
  • mysql에서는 start transaction을 해야 함(수동)
-- 두 번째로 할 일: START TRANSACTION
START TRANSCATION;
  • select, insert, update, delete(dml 작업수행) 하고 commit을 하면 rollback을 해도 rollback이 적용되지 않음
INSERT
	INTO tbl_menu
VALUES
(	
	NULL, '바나나 해장국', 8500
, 4, 'Y'
);
UPDATE tbl_menu
	SET menu_name = '수정된 메뉴1'
	WHERE menu_code = 5;
	
UPDATE tbl_menu
	SET menu_name = '수정된 메뉴2'
WHERE menu_code = 6;

SELECT * FROM tbl_menu;  --  조회된 데이터는 실제 db에 적용된 값이 아니다.

ROLLBACK;

SELECT * FROM tbl_menu;  --  rollback 또는 commit 이후 select한 것이 실제 db에 적용된 값이다.

-- rollback = 원상복구 / commit 전까지는 rollback 가능
  • 하나의 TRANSACTION(예시)

profile
나는 할 수 있다...!

0개의 댓글