sql >> Databasteknik >  >> RDS >> Mysql

node.js mysql pool börjarTransaktion och anslutning

En transaktion kan inte delas av flera databasanslutningar och är alltid begränsad till en enda anslutning. Det bästa tillvägagångssättet skulle vara att skaffa en anslutning från poolen innan du påbörjar transaktionen och släppa 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. hur man ställer in django och mysql att fungera med UTF-8

  2. PHP Object Property har parenteser i sig

  3. Skicka parametrar till MySQL-skript

  4. Hur man återställer Sqlite-databas efter säkerhetskopiering av Android