수업자료/database

[SQL]-TRANSACTION

조찬국 2024. 6. 26. 23:36
728x90

1. mariaDB에서 autocommit 활성화 및 비활성화

-- autocommit 비활성화
set autocommit =0;
SET autocommit =OFF;

-- autocommit 활성화
SET autocommit =1;
SET autocommit =ON;

 

2. TRANSACTION이란?

 
💡 TRANSACTION은 데이터베이스에서 하나의 작업을 수행하기 위한 연산을 모아 놓은것이다.
시작, 진행, 종료 단계를 가지며 만약 중간에 오류가 발생하면 롤백(시작 이전 단계로 되돌리는 작업)을 수행하고, 데이터베이스에 제대로 반영하기 위해서는 커밋(이후 롤백이 되지 않음)을 진행한다. MySQL은 기본적으로 자동 커밋 설정이 되어 있어 롤백이 안 된다. 롤백을 하기 위해서는 자동 커밋 설정을 해제해 주어야 한다.

 

2-1. STRART TRANSACTION

START TRANSACTION;

SELECT * FROM tbl_menu;
INSERT INTO tbl_menu VALUES (null, '바나나해장국', 8500, 4, 'Y');
UPDATE tbl_menu SET menu_name = '수정된 메뉴' WHERE menu_code = 5;
DELETE FROM tbl_menu WHERE menu_code = 7;

-- COMMIT; 
ROLLBACK;
  • DML 작업 수행 후  ROLLBACK을 하면 DML 작업이 취소된다.
  • COMMIT 이후에는 데이터베이스에 영구 반영되어 ROLLBACK을 해도 ROLLBACK이 적용되지 않는다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90