const queryString = 'REPLACE INTO 뭐시기테이블이름 ('
+ ` ${Object.keys(refinedDatas[0]).reduce((acc, field) => `${acc}, ${field}`, '').slice(2)} ) VALUES ?`
this.nexusConnection.query(
queryString,
[refinedDatas.map((item) => Object.values(item))],
async (nDError, nDResult): Promise<void> => {
if (nDError) {
console.error('적절한 에러 위치 표시자')
console.error(nDError)
await pushMetric(EnumBatchError.PUT_DATA_ERROR)
} else {
console.info(nDResult)
}
this.nexusConnection.end()
process.exit(0)
}
)
}
이러한 형태의 코드를 쓰고 있었는데
갑자기 안 된다.
그 이유는 keys에 rank가 추가되면서 쿼리스트링이 이상해진 것.
REPLACE INTO 뭐시기테이블이름 ( uuid, timestamp, ~~~, rank, ~~ ) VALUES ?
이러면 rank는 원래 있는 함수다보니 이 위치에서 사용할 수 없음