Edw*_*ejo 6 mysql node.js express node-mysql
今天是个好日子!我一直想知道nodejs mysql beginTransaction是否在我的池中使用多个连接(如果我的事务中有多个查询),或者它是否仅使用单个连接,直到它被提交?
Sid*_*yar 14
多个数据库连接无法共享事务始终限于单个连接.最好的方法是在开始事务之前从池中获取连接,并在回滚或提交后释放它.
pool.getConnection(function(err, connection) {
connection.beginTransaction(function(err) {
if (err) { //Transaction Error (Rollback and release connection)
connection.rollback(function() {
connection.release();
//Failure
});
} else {
connection.query('INSERT INTO X SET ?', [X], function(err, results) {
if (err) { //Query Error (Rollback and release connection)
connection.rollback(function() {
connection.release();
//Failure
});
} else {
connection.commit(function(err) {
if (err) {
connection.rollback(function() {
connection.release();
//Failure
});
} else {
connection.release();
//Success
}
});
}
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5622 次 |
最近记录: |