프로덕션쪽 누락된 데이터가 있어서 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 [가늘고길게:티스토리]