首页 > 解决方案 > 如何使用 nodejs 和 mysql 插入多个对象?

问题描述

如何使用 nodejs 和 mysql 插入多个对象?

我有这样的数据json:

[
   {
      "id":"317",
      "stock":"200",
      "status":"y"
   },
   {
      "id":"1224",
      "stock":"400",
      "status":"y"
   }
]

这是我的代码:

function create(req, res) {
  pool.getConnection((err, connection) => {
    if (err) return res.send(err)
    let { id, stock, status } = req.body
    let values = [{
      id: id,
      stock: stock,
      status: status
    }]
    let sql = 'INSERT INTO tbl_stock SET ?'
    connection.query(sql, values, (err, results) => {
      if (err) {
        return res.send(err)
      } else {
        connection.release()
        return res.status(HttpStatus.OK).json({ message: 'ok', status: HttpStatus.OK })
      }
    })
  })
}

如果数据 json 有一个对象,则此代码有效,但我想插入多个具有 json 格式的对象,如上面的数据 json,该怎么做?

标签: mysqlnode.jsexpress

解决方案


You can insert multiple rows in bulk using array of arrays, So values should look something like this,

let values = [[317, 200, 'y'], [1224, 400, 'y']];

Query would look something like this,

let sql = 'INSERT INTO tbl_stock(id, stock, status) VALUES ?';

Then run the query using connection,

connection.query(sql, values, (err, results) => {
      if (err) {
        return res.send(err)
      } else {
        connection.release()
        return res.status(HttpStatus.OK).json({ message: 'ok', status: HttpStatus.OK })
      }
    })

推荐阅读