https://dev.mysql.com /doc/refman/5.7/hi/innodb-autocommit-commit-rollback.html कहते हैं:
इसलिए जब आप एक सत्र में autocommit=0 सेट करते हैं (इसे सत्र 1 कहते हैं), तो यह परोक्ष रूप से खुलता है एक लेनदेन, और इसे अनिश्चित काल के लिए खुला छोड़ देता है।
डिफ़ॉल्ट लेनदेन अलगाव स्तर दोहराने योग्य-पढ़ने योग्य है। इसलिए आपका सत्र अन्य सत्रों के कार्य से प्रतिबद्ध परिवर्तनों का एक ताज़ा दृश्य तब तक नहीं देखेगा जब तक कि सत्र 1 स्पष्ट रूप से कमिट या रोल बैक नहीं हो जाता।
दूसरे सत्र 2 में आपका LOCK TABLES करता है एक अंतर्निहित प्रतिबद्धता का कारण बनता है, लेकिन सत्र 1 परिणाम नहीं देखता है क्योंकि यह अभी भी अपने स्वयं के लेनदेन स्नैपशॉट के कारण डेटा का एक अलग दृश्य देखने में सक्षम है।