Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

ज़ेंड फ्रेमवर्क में डेटाबेस लेनदेन:क्या वे अलग-थलग हैं?

मान लें कि आप InnoDB इंजन का उपयोग कर रहे हैं उन तालिकाओं के लिए जिन पर आप लेन-देन जारी करेंगे:

यदि आवश्यकता यह है कि आपको पहले पंक्ति को पढ़ने और विशेष रूप से इसे लॉक करने की आवश्यकता है, तो इससे पहले कि आप इसे अपडेट करने जा रहे हैं, आपको एक SELECT ... FOR UPDATE सवाल। कुछ इस तरह:

$db->beginTransaction();
try
{
    $select = $db->select()
                 ->forUpdate() // <-- here's the magic
                 ->from(
                     array( 'a' => 'yourTable' ),
                     array( 'your', 'column', 'names' )
                 )
                 ->where( 'someColumn = ?', $whatever );

    $result = $this->_adapter->fetchRow( $select );

    /*
      alter data in $result
      and update if necessary:
    */
    $db->update( 'yourTable', $result, array( 'someColumn = ?' => $whatever ) );

    $db->commit();
}
catch( Exception $e )
{
    $db->rollBack();
}

या बस 'कच्चा' जारी करें SELECT ... FOR UPDATE और UPDATE $db पर SQL स्टेटमेंट बेशक।




  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 FIND_IN_SET या समकक्ष को इंडेक्स का उपयोग करने के लिए बनाया जा सकता है?

  2. MySQL GROUP BY और खाली पंक्तियों को भरें

  3. रेल:मास्टर/दास डेटाबेस में लिखने/पढ़ने की क्वेरी को कैसे विभाजित करें?

  4. डेटाबेस से इकाइयाँ बनाना

  5. समय की जानकारी संग्रहीत करना:समय क्षेत्र की आवश्यकता है?