반응형
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을 쓰라고 하는거다
반응형
'SQL > MySQL' 카테고리의 다른 글
MySQL SELECT INSERT 동시에 하는 방법 (0) | 2021.01.16 |
---|---|
MySQL LIMIT OFFSET 사용법 정리 (3) | 2021.01.16 |
MySQL DATEDIFF, TIMESTAMPDIFF를 이용한 날짜 차이 비교방법 (0) | 2021.01.15 |
MySQL 테이블 컬럼 조회방법 (0) | 2021.01.15 |
MySQL INNER LEFT RIGHT CROSS JOIN 사용방법 및 예제 (0) | 2021.01.08 |
댓글