node mysql 同时向两张表插入数据,并且其中一张表插入多次数据
【代码】node mysql 同时向两张表插入数据,并且其中一张表插入多次数据。
·
const mysql = require('mysql');
exports.query = (sqlList) => new Promise((outResolve, reject) => {
const connection = mysql.createConnection({
host : '127.0.0.1',
port: '3306',
user : 'xxx',
password : 'xxxx',
database : 'xxx',
});
const obj = {};
// 开始一个事务
connection.beginTransaction((err) => {
obj.err = err;
if(err) {
return outResolve(obj);
};
// 使用 Promise.all 来确保所有插入操作都完成
Promise.all(sqlList.map((item) => {
return new Promise((resolve, reject) => {
connection.query(item.sql, item.values, function(error, results, fields) {
if (error) {
reject(error); // 如果有错误,Promise 将被拒绝
} else {
resolve(results); // 否则,Promise 将被解决
}
});
});
})).then((results) => {
console.log('All orders inserted successfully');
// 如果没有错误,提交事务
connection.commit();
obj.result = results;
outResolve(obj);
}).catch((err) => {
console.error('Error inserting orders:', err);
// 如果有错误,回滚事务
return connection.rollback(() => {
obj.err = err;
outResolve(obj);
// throw err;
});
}).then(() => {
connection.end(); // 关闭连接
});
});
});
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献2条内容
所有评论(0)