본문 바로가기
SQL/MySQL

MySQL START TRANSACTION 개념 및 예제

by wakestand 2021. 1. 15.
반응형

MySQL에서 INSERT, UPDATE, DELETE와 같이

DB 내용을 변경하는 쿼리를 사용하는 경우

주변에서 반드시 START TRANSACTION을 먼저 사용하라고 하는데

 

이게 뭐냐면 START TRANSACTION을 사용한 후에는

COMMIT이나 ROLLBACK을 사용하기 전에는

수정한 내용이 DB에 반영되지 않기 때문에

 

쿼리를 돌려본 뒤에 이게 맞으면 COMMIT하는 거고 

아니면 ROLLBACK으로 돌려버리면 되는거다

 

근데 자연스럽게 COMMIT; ROLLBACK; 을 쓰지 않으면

애초에 반영 안되는건데 굳이 START TRANSACTION을

쓸 필요가 있나 하는 생각이 들거다

 

하지만 MySQL은 오라클과 다르게

기본 옵션이 쿼리 수행 시 바로 COMMIT 시켜버리기 때문에

되돌릴 수 없는 참사를 방지하기 위해

START TRANSACTION을 사용하게 되는 것이다

 

SET autocommit = ON;
SET autocommit = OFF;

 

또한 위의 쿼리를 사용해서

START TRANSACTION을 사용하지 않고

autocommit만 껐다 켰다 하면서 사용하는 방법도 있는데

(그냥 에디터에서 오토커밋 버튼 눌러도 됨)

 

어느 방법을 쓰던 간에 성능별 차이는 없고

그냥 편한대로 사용해주면 된다

상사들은 대부분 옛날 사람인데다 옛날에는

START TRANSACTION을 많이 사용했기 때문에

오토커밋 버튼을 몰라서 START TRANSACTION을 쓰라고 하는거다

반응형

댓글