sql >> Database >  >> RDS >> Mysql

node.js mysql pool beginTransactie en verbinding

Een transactie kan niet worden gedeeld door meerdere databaseverbindingen en is altijd beperkt tot een enkele verbinding. De beste aanpak zou zijn om een ​​verbinding van de pool te verkrijgen voordat u met de transactie begint en deze vrij te geven na een terugdraaiing of een vastlegging.

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



  1. .NET 4:EDMX-bestand configureren in een andere assembly in Web.Config

  2. Hoe verander ik het kolomtype in Heroku?

  3. Pseudo-kolommen gebruiken met een gekoppelde server

  4. Hoe json-array naar tekstarray te casten?