[SQL] Transaction

Soo·2023년 12월 21일

프로덕션쪽 누락된 데이터가 있어서 insert를 해주다가 잘못된 데이터를 해주는 바람에 해결하다가 sql 쿼리문에도 transaction이 존재한다는 것을 알게 되었다.

트랜잭션 도구
START TRANSACTION;
// COMMIT, ROLLBACK이 나올 때까지 실행되는 모든 SQL 추적
COMMIT;
// 모든 코드를 실행(문제가 없을 경우에)
ROLLBACK;
// START TRANSACTION 실행 전 상태로 되돌림(문제 생기면)

ex)START TRANSACTION;        // 트랜잭션 시작
SELECT FROM my_table;                                 // 초기상태 보여줌
DELETE FROM my_table WHERE gender = 'M';    // 데이터의 수정
SELECT
FROM my_table;                      // 수정 후의 상태 보여줌
ROLLBACK;                 // 트랜잭션이 선언되기 전 상태로 되돌아감

SELECT FROM my_table;             // 수정 전의 초기 상태를 보여줌
START TRANSACTION;                              // 다시 트랜잭션 시작
DELETE FROM my_table WHERE gender = 'M';    // 수정
COMMIT;                                    // 트랜잭션 이후 모든 동작을 적용
SELECT
FROM my_table; // 적용된 결과 보여줌

💡 tip
Transaction 실행 후, 반드시 commit까지 해주도록..
(익숙치 않아 transaction 실행 후 commit 실행을 안해줘서 작업을 다시 했다는..🥲 )

출처: https://iamzombie.tistory.com/38 [가늘고길게:티스토리]

profile
Soogineer's Devlog

0개의 댓글