我有一个我想bulk insert
进入mysql的方法。我正在使用NodeJS
和mysql2
。
我的方法:
createWorklog = async ({ sqlArray }) => {
const sql = `INSERT INTO ${this.tableName}
(project_id, user_id, date, duration, task, description) VALUES ?`
const result = await query(sql, [sqlArray])
const affectedRows = result ? result.affectedRows : 0;
return affectedRows;
}
wheresqlArray
是array of arrays
所有子数组的长度相同的地方。
而这个query
方法中调用的方法是下一个:
query = async (sql, values) => {
return new Promise((resolve, reject) => {
const callback = (error, result) => {
if (error) {
reject(error);
return;
}
resolve(result);
}
// execute will internally call prepare and query
this.db.execute(sql, values, callback);
}).catch(err => {
const mysqlErrorList = Object.keys(HttpStatusCodes);
// convert mysql errors which in the mysqlErrorList list to http status code
err.status = mysqlErrorList.includes(err.code) ? HttpStatusCodes[err.code] : err.status;
throw err;
});
}
}
我的问题是没问题body parameters
(正如我所说,数组数组)但是方法 throws 500
。
execute
由于存在于中的命令,这可能mysql2
吗?或者是另一个错误?
感谢您的时间!
编辑
根据@Gaurav 的回答,我将方法从使用“执行”更改为“查询”,并且运行良好。