Mysql
 sql >> база данни >  >> RDS >> Mysql

node.js mysql пул започват транзакция и връзка

Транзакцията не може да бъде споделена от множество връзки към базата данни и винаги е ограничена до една връзка. Най-добрият подход би бил да придобиете връзка от пула, преди да започнете транзакцията и да я освободите след връщане назад или комит.

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
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:уникалното поле трябва да бъде индекс?

  2. MySQL:Конвертирайте INT в DATETIME

  3. OpenSSL - грешка 18 при търсене в дълбочина:самоподписан сертификат

  4. Как да се свържете с MySQL с помощта на PHP

  5. прехвърляне на String към sql време