node.js mysql pool beginTransaction & connection node.js mysql pool beginTransaction & connection mysql mysql

node.js mysql pool beginTransaction & connection


A transaction cannot be shared by multiple database connections and is always limited to a single connection. The best approach would be to acquire a connection from the pool before you begin the transaction and release it after a rollback or a commit.

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                        }                    });                }            });        }        });});