sql >> Database teknologi >  >> RDS >> Mysql

node.js mysql pool begynderTransaktion og forbindelse

En transaktion kan ikke deles af flere databaseforbindelser og er altid begrænset til en enkelt forbindelse. Den bedste tilgang ville være at erhverve en forbindelse fra puljen, før du begynder transaktionen og frigive den efter en rollback eller en 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
                        }
                    });
                }
            });
        }    
    });
});



  1. Database Mail Tutorials

  2. Formatering af dato til menneskeligt læsbart format

  3. PHP-spørgsmål:Hvordan rettes disse if/elseif-sætninger

  4. Hvordan overføres tabelværdiparametre fra Java til sql server lagret procedure?