मुझे लगता है कि आप इनो डीबी टेबल का उपयोग कर रहे हैं, न कि माईसाम वाले। जैसा कि InnoDB लेन-देन मॉडल में बताया गया है , सभी आपके प्रश्न (चयन सहित) लेनदेन के अंदर हो रहे हैं।
जब AutoCommit चालू है, प्रत्येक क्वेरी के लिए एक लेनदेन शुरू किया जाता है और यदि यह सफल होता है, तो यह निहित रूप से प्रतिबद्ध है (यदि यह विफल रहता है, तो व्यवहार भिन्न हो सकता है, लेकिन लेनदेन समाप्त होने की गारंटी है)। आप MySQL के बिनलॉग में निहित कमिट देख सकते हैं। AutoCommit setting सेट करके गलत करने के लिए, आपको अपने लेनदेन का प्रबंधन स्वयं करना होगा।
डिफ़ॉल्ट लेन-देन अलगाव स्तर है दोहराए जाने योग्य पढ़ेंए> , जिसका अर्थ है कि सभी SELECT क्वेरीज़ एक ही स्नैपशॉट पढ़ेंगे (लेन-देन शुरू होने पर स्थापित)।
अन्य उत्तर में दिए गए समाधान के अलावा (ROLLBACK पढ़ना शुरू करने से पहले) यहां कुछ समाधान दिए गए हैं:
आप एक अन्य लेन-देन अलगाव स्तर चुन सकते हैं, जैसे प्रतिबद्ध पढ़ें
, जो आपका SELECT . बनाता है क्वेरीज़ हर बार एक ताज़ा स्नैपशॉट पढ़ती हैं।
आप AutoCommit भी छोड़ सकते हैं सही पर (डिफ़ॉल्ट सेटिंग) और BEGIN WORK . जारी करके अपना खुद का लेनदेन शुरू करें . यह अस्थायी रूप से AutoCommit . को अक्षम कर देगा जब तक आप COMMIT जारी नहीं करते तब तक व्यवहार या ROLLBACK वह कथन जिसके बाद प्रत्येक क्वेरी का अपना लेन-देन फिर से हो जाता है (या आप BEGIN WORK के साथ दूसरी शुरुआत करते हैं )।
मैं, व्यक्तिगत रूप से, बाद वाली विधि को चुनूंगा, क्योंकि यह अधिक सुरुचिपूर्ण लगती है।