आपकी स्पष्टीकरण टिप्पणी कहती है कि आप यह सुनिश्चित करने में रुचि रखते हैं कि यदि कोई अन्य समवर्ती INSERT होता है तो LAST_INSERT_ID() गलत परिणाम नहीं देता है। निश्चिंत रहें कि अन्य समवर्ती गतिविधि की परवाह किए बिना LAST_INSERT_ID() का उपयोग करना सुरक्षित है। LAST_INSERT_ID() केवल वर्तमान सत्र के दौरान उत्पन्न नवीनतम आईडी लौटाता है।
आप इसे स्वयं आजमा सकते हैं:
- दो शेल विंडो खोलें, प्रत्येक में mysqlclient चलाएँ और डेटाबेस से कनेक्ट करें।
- शैल 1:AUTO_INCREMENT कुंजी वाली तालिका में INSERT करें।
- शैल 1:LAST_INSERT_ID() चुनें, परिणाम देखें।
- शैल 2:एक ही टेबल में INSERT करें।
- शेल 2:LAST_INSERT_ID() चुनें, शेल 1 से अलग परिणाम देखें।
- शैल 1:LAST_INSERT_ID() को फिर से चुनें, पहले के परिणाम की पुनरावृत्ति देखें।
यदि आप इसके बारे में सोचते हैं, तो यही एकमात्र तरीका है जो समझ में आता है। ऑटो-इंक्रीमेंटिंग कुंजी तंत्र का समर्थन करने वाले सभी डेटाबेस को इस तरह से कार्य करना चाहिए। यदि परिणाम अन्य ग्राहकों के साथ एक दौड़ की स्थिति पर निर्भर करता है, जो संभवतः समवर्ती रूप से INSERTing कर रहे हैं, तो आपके वर्तमान सत्र में अंतिम सम्मिलित आईडी मान प्राप्त करने का कोई भरोसेमंद तरीका नहीं होगा।