인프런 커뮤니티 질문&답변

집중하기 매우 어려움님의 프로필 이미지
집중하기 매우 어려움

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

CRUD 작업하기

트랜잭션 질문

작성

·

202

0

 

안녕하세요 영원한 스승 제로초님 mysql 트랜잭션 사용 중에 궁금한 점이 있어 질문드립니다. 위 코드는 유저 테이블과 유저의 상세 정보 테이블 2개의 인서트 쿼리가 이루어집니다. mysql.createPool에 있는 query를 꺼내서 트랜잭션 하면 작동하지만 인서트 쿼리를 따로 분리해 함수로 사용하면 트랜잭션이 먹질 않습니다. 오래 고민해 본 결과 트랜잭션이 이루어지는 동안 쿼리가 아닌 함수가 실행돼서 그런 거 같습니다. 다중 쿼리를 생각해 봤지만 유저 테이블에 결과값이 유저 상세 테이블에 들어가야 해서 소용없는 거 같습니다. 방법이 있을 거 같은데 쉽게 떠오르지 않아 질문  드립니다ㅜㅜ

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

db.query를 쓰지 마시고요. db.getConnection으로 얻은 커넥션 객체를 공유해서 쿼리를 날려야합니다. 매번 db.query를 하면 db가 그 쿼리가 하나의묶음인지 알수가 없습니다.

즐주되십쇼!

집중하기 매우 어려움님의 프로필 이미지
집중하기 매우 어려움

작성한 질문수

질문하기