본문 바로가기

프로그래밍/mySQL

[mySQL] 트랜잭션(START 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;                                //적용된 결과 보여줌