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

MySQLdb के कमांड को सिंक से बाहर होने से बचाने के तरीके; आप इस आदेश को अभी (2014) अपवाद नहीं चला सकते हैं

डीबी-एपीआई अपने आप लेनदेन को संभालने की कोशिश करता है, पहले आदेश पर लेनदेन शुरू करता है और इसे प्रतिबद्ध करने के लिए अपनी एपीआई कॉल करता है, इसलिए:

cursor.execute( "CREATE TABLE t1 ( t1_id INT PRIMARY KEY AUTO_INCREMENT )" )
cursor.commit()
cursor.execute( "CREATE TABLE t2 ( t2_id INT PRIMARY KEY AUTO_INCREMENT )" )
cursor.commit()

मेरी राय में, यह पायथन के डीबी-एपीआई की एक गंभीर, चमकदार डिजाइन त्रुटि है, जिससे लेनदेन के बाहर आदेशों को निष्पादित करने और लेनदेन पर उचित नियंत्रण रखने में गंभीर परेशानी होती है, उदाहरण के लिए। SQLite के BEGIN EXCLUSIVE TRANSACTION . जैसी चीज़ों का उपयोग करने के लिए . यह ऐसा है जैसे किसी वास्तविक डेटाबेस अनुभव वाले व्यक्ति को एपीआई डिजाइन करने की अनुमति नहीं थी...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Auto_increment id एक के बाद एक क्यों नहीं बढ़ती, इसे कैसे सेट करें?

  2. डेटा को एक नई तालिका में सारांशित करें

  3. mySQL ऑटो-इन्क्रीमेंटेड आईडी आरक्षित करना?

  4. अगले महीने की पहली और आखिरी तारीख MySQL में पाएं

  5. एक सामान्य क्षेत्र के साथ MySQL में तालिकाओं में शामिल होना लेकिन सामान्य क्षेत्र के लिए अलग-अलग मान