gpt4 book ai didi

mysql - 使用异步等待插入每个

转载 作者:行者123 更新时间:2023-11-29 09:42:20 24 4
gpt4 key购买 nike

查询执行错误

var records = [{name:'John',age:24},{name:'Sarah',age:28},{name:'Linda',age:23}];

connection.getSession().then(session => {
async function insertRecords() {
await Promise.all(records.map(async function (element) {
let util = {};
util['name'] = element['name'];
util['age'] = element['age'] || null;
let query = `INSERT INTO users SET
name =?,
age=?
ON DUPLICATE KEY UPDATE
name=VALUES(name),
age=VALUES(age)`;

session.sql(query).bind([util.name, util.age]).execute()
.then(() => {})
.catch((error) => {
console.error('cannot execute the query');
console.error('error', error);
});
}))
}

insertRecords()
.then(data => console.log('data', data))
.catch(err => console.log('err', err))

}).catch((err) => {
console.error(err);
session.close();
});

我在执行时收到以下错误。

{ 严重性:0, 代码:5015, sqlState: 'HY000', msg: '参数太多' } }

最佳答案

在您的 Promise.all 中,你maprecords但您的解析器函数不会返回任何内容。您需要返回一个 promise 。为此,您只需替换 session.sql block 包含以下内容:return session.sql(query).bind([util.name, util.age]).execute() .

这会将 Promise 数组返回到 Promise.all ,并且它会起作用。当您调用 insertRecords 时,错误处理已经完成。函数,因此您无需在解析器中担心它。

关于mysql - 使用异步等待插入每个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56348062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com