[MySQL] 데이터베이스 조작 시 TRANSACTION 사용하기
환경
- MySQL
배경
- 데이터베이스를 사용하다가 실수를 하지 않으려면 어떤 방법이 있을까 하면서 생각하다가 정리
START TRANSACTION, COMMIT, and ROLLBACK 구문들
START TRANSACTION
- 새로운 트랜잭션을 시작
- 이어지는 쿼리들을 다 기억한다.
COMMIT
- 현재 트랜잭션을 커밋하여 해당 변경 사항을 영구적으로 반영한다.
- Implicit Commit을 발생시키는 경우는 링크를 참고
ROLLBACK
- 현재 트랜잭션을 롤백하여 해당 변경 사항들을 취소한다.
- Rollback을 할 수 없는 구문의 경우 링크를 참고
사용 예시
- example_table에서 실수로 id가 2인 행의 값을 잘못 변경해서 다시 id가 3인 행의 값을 변경하는 예시
- 이 외에도 데이터베이스에 많은 변경이 필요할 때 TRANSACTION을 사용하여 유용하게 처리할 수 있다.
START TRANSACTION;
UPDATE example_table SET status = 'family' WHERE id = 2;
ROLLBACK;
START TRANSACTION;
UPDATE example_table SET status = 'family' WHERE id = 3;
COMMIT;