mysql - 如何使用 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,该怎么做?
解决方案
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 })
}
})
推荐阅读
- parameters - 跨域跟踪:Ga 链接器参数未出现在 URL 中
- celery - Airflow DAGS 正在运行,但任务未运行/排队 - 发送 Celery 任务时出错:超时
- android - 使用 volley 通过 FCM REST API 发送 POST 请求时出现身份验证错误
- dataweave - 使用 dataweave 匹配 mule 4 中的数组值
- cmake - Cmake - 如何包含仅具有读取权限的路径?
- javascript - Javascript 产量无法正常工作
- python - 从python中的特定图像块中读取文本
- android - 当返回通用类型 * 我得到错误信息不足以推断类型变量 T
- python - 如何将拆分字符串转换为字典?
- graphql - 将变量传递给具有复杂输入类型的查询