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

ऑटोकॉमिट के साथ डीबीआई डेटाबेस हैंडल 0 पर सेट है जो चयन के साथ उचित डेटा नहीं लौटा रहा है?

मुझे लगता है कि आप इनो डीबी टेबल का उपयोग कर रहे हैं, न कि माईसाम वाले। जैसा कि InnoDB लेन-देन मॉडल में बताया गया है , सभी आपके प्रश्न (चयन सहित) लेनदेन के अंदर हो रहे हैं।

जब AutoCommit चालू है, प्रत्येक क्वेरी के लिए एक लेनदेन शुरू किया जाता है और यदि यह सफल होता है, तो यह निहित रूप से प्रतिबद्ध है (यदि यह विफल रहता है, तो व्यवहार भिन्न हो सकता है, लेकिन लेनदेन समाप्त होने की गारंटी है)। आप MySQL के बिनलॉग में निहित कमिट देख सकते हैं। AutoCommit setting सेट करके गलत करने के लिए, आपको अपने लेनदेन का प्रबंधन स्वयं करना होगा।

डिफ़ॉल्ट लेन-देन अलगाव स्तर है दोहराए जाने योग्य पढ़ें , जिसका अर्थ है कि सभी SELECT क्वेरीज़ एक ही स्नैपशॉट पढ़ेंगे (लेन-देन शुरू होने पर स्थापित)।

अन्य उत्तर में दिए गए समाधान के अलावा (ROLLBACK पढ़ना शुरू करने से पहले) यहां कुछ समाधान दिए गए हैं:

आप एक अन्य लेन-देन अलगाव स्तर चुन सकते हैं, जैसे प्रतिबद्ध पढ़ें , जो आपका SELECT . बनाता है क्वेरीज़ हर बार एक ताज़ा स्नैपशॉट पढ़ती हैं।

आप AutoCommit भी छोड़ सकते हैं सही पर (डिफ़ॉल्ट सेटिंग) और BEGIN WORK . जारी करके अपना खुद का लेनदेन शुरू करें . यह अस्थायी रूप से AutoCommit . को अक्षम कर देगा जब तक आप COMMIT जारी नहीं करते तब तक व्यवहार या ROLLBACK वह कथन जिसके बाद प्रत्येक क्वेरी का अपना लेन-देन फिर से हो जाता है (या आप BEGIN WORK के साथ दूसरी शुरुआत करते हैं )।

मैं, व्यक्तिगत रूप से, बाद वाली विधि को चुनूंगा, क्योंकि यह अधिक सुरुचिपूर्ण लगती है।



  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. इसके कारण:java.sql.SQLException:उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' के लिए प्रवेश निषेध (पासवर्ड का उपयोग करके:हाँ)

  3. MySQL - FLOAT(10,6) के साथ ऑपरेटर के बीच>=और <=के बजाय> और <की तरह काम कर रहा है

  4. MySql बनाम NoSql - सोशल नेटवर्क टिप्पणियाँ और सूचनाएं डेटा संरचना और कार्यान्वयन

  5. डीबी में उन्हें स्टोर करने के लिए सरणी को क्रमबद्ध करने का क्या मतलब है?