Database/MySQL

MySQL μ—¬λŸ¬κ°œμ˜ 데이터 ν•œλ²ˆμ— μ €μž₯ν•˜κΈ° (Node js, mysql2 promise)

Yusang 2021. 7. 1. 09:51

πŸ₯ MySQL μ—¬λŸ¬ 개의 λ°μ΄ν„° ν•œ λ²ˆμ— μ €μž₯ν•˜κΈ° (Node js, mysql2 promise) 

βŒ› Problem

πŸ˜• λ³€κ²½ μ „ μ½”λ“œ

      const connection = await pool.getConnection(async (conn) => conn);
      
      ...........
      
      
      for (i in reviewImg) {
            let postReviewImgParams = [
                getReviewIdx[0].reviewIdx,
                reviewImg[i]
            ]
            await hospitalDao.postReviewImg(connection, postReviewImgParams);
        }
async function postReviewImg(connection, postReviewImgParams) {
    const postReviewImgQuery = `
    INSERT INTO ReviewImg(reviewIdx, reviewImg) VALUES (?,?);
    `;
    const [postReviewImgRow] = await connection.query(
        postReviewImgQuery,
        postReviewImgParams
    );

    return postReviewImgRow;
}

μ‚¬μš©μžκ°€ μž‘μ„±ν•œ λ¦¬λ·°μ—λŠ” ν•˜λ‚˜μ˜ 리뷰에 μ—¬λŸ¬ 개의 이미지가 λ“€μ–΄κ°ˆ 수 있기 λ•Œλ¬Έμ— 리뷰 이미지 ν…Œμ΄λΈ”μ„ λ”°λ‘œ DB에 μƒμ„±ν•˜μ—¬ 관리해야 ν•˜κ³ , 리뷰λ₯Ό μ €μž₯ ν•  λ•Œ 이미지λ₯Ό λ”°λ‘œ μ €μž₯ν•΄μ•Ό ν•©λ‹ˆλ‹€.

κ·Έλž˜μ„œ μ €λŠ” μœ„μ™€ 같이 λ‘œμ§μ„ κ΅¬μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ μ΄λŠ” 이미지 ν•˜λ‚˜ν•˜λ‚˜μ”©μ„ connection ν•˜κ³  μ €μž₯ν•˜κΈ° λ•Œλ¬Έμ— λΉ„νš¨μœ¨μ μž…λ‹ˆλ‹€.

 

κ·Έλž˜μ„œ μ €λŠ” 이미지λ₯Ό ν•œ λ²ˆμ— μ €μž₯ν•  수 μžˆλŠ” 방법,

μ—¬λŸ¬ 개의 데이터λ₯Ό ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”μ— ν•œ λ²ˆμ— μ €μž₯ν•  수 μžˆλŠ” 방법을 μ°Ύμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

 

πŸ“œ Solution

 

How do I do a bulk insert in mySQL using node.js

How would one do a bulk insert into mySQL if using something like https://github.com/felixge/node-mysql

stackoverflow.com

μœ„ λ§ν¬μ—μ„œ κ·Έ 해닡을 얻을 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

 

 

 

πŸ˜„ λ³€κ²½ ν›„ μ½”λ“œ

       const connection = await pool.getConnection(async (conn) => conn);
      
       ...........
      
        
        let reviewImgList = [];
        
        for (i in reviewImg) {
            reviewImgList.push([getReviewIdx[0].reviewIdx,reviewImg[i]])
        }
        
        if (reviewImgList.length > 0) {
            await hospitalDao.postReviewImg(connection, [reviewImgList]);
        }
async function postReviewImg(connection, [values]) {
    const postReviewImgQuery = `
    INSERT INTO ReviewImg(reviewIdx, reviewImg) VALUES ?;
 
    `;
    const [postReviewImgRow] = await connection.query(
        postReviewImgQuery,
        [values]
    );

    return postReviewImgRow;
}

 

ν…ŒμŠ€νŠΈ κ²°κ³Ό, 문제 없이 잘 μ‹€ν–‰λ©λ‹ˆλ‹€! πŸ˜„