आप जिस परिदृश्य का वर्णन कर रहे हैं, उससे बचने के लिए आपको दोनों कनेक्शनों को क्रमबद्ध लेनदेन अलगाव स्तर में रखना होगा, या तो tx_isolation
सेट करके प्रत्येक कनेक्शन पर:
SET @@tx_isolation = SERIALIZABLE;
या
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
या इसके साथ वैश्विक अलगाव स्तर निर्धारित करके:
SET @@global.tx_isolation = SERIALIZABLE;
या
SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;
जो बाद में खोले गए किसी भी कनेक्शन द्वारा विरासत में मिला है। उस स्तर पर, लेन-देन किसी भी प्रश्न पर अवरुद्ध हो जाएगा यदि कोई अन्य लेनदेन पहले से ही प्रगति पर है, अर्थात। लेन-देन पहले से ही एक ही टेबल पर एक क्वेरी (पढ़ें या लिखें) उत्सर्जित कर चुका है।
देखें mysql प्रलेखन अधिक जानकारी के लिए।