Node.js에서 MySQL Transaction을 구현해보았습니다.

TypeORM, RawQuery를 사용하여 DB에 접근하였습니다.

 

진행순서는 하기와 같습니다.

 

1. START TRANSACTION로 TRANSACTION 시작지점 선언

2. DB에 삽입 될 데이터 생성

3. 생성 된 데이터를 수정(오류 발생 지점)

4. 오류가 발생된다면 ROLLBACK, 발생되지 않는다면 COMMIT

 

Javascript의 Try, Catch문을 사용하여,

정상완료시와 오류발생시 상황을 분리해줍니다.

 

정상완료시에는 Transaction 시작->데이터 생성->수정 된 데이터를 확인 할 수 있습니다.

오류발생시에는 Transaction 시작->데이터 생성->수정 중 에러->데이터 없이 Transaction 시작점으로 Rollback입니다.

 

자세한 상황은 하기 이미지와 같습니다.

 

1. 정상완료시(Transaction -> Commit)

정상 처리되어 데이터가 삽입 및 수정 됨

 

2. 오류발생시(Transaction -> Rollback)

에러가 발생하여 초기상황으로 Rollback 됨

+ Recent posts