उत्तर है:ठीक है, यह निर्भर करता है।
मायिसम के मामले में, उत्तर एक निश्चित हां है, क्योंकि मायिसम अनुक्रम अनुरोध सम्मिलित करते हैं।
हालांकि, निर्दोष के मामले में, व्यवहार कॉन्फ़िगर करने योग्य है क्योंकि mysql v5.1. v5.1 से पहले, फिर InnoDB का उत्तर भी हाँ है, उसके बाद यह innodb_autoinc_lock_mode
पर निर्भर करता है सेटिंग। विवरण के लिए InnoDB auto_increment कॉन्फ़िगरेशन पर mysql दस्तावेज़ देखें
।
आपको हाइलाइट देने के लिए, 3 हैं innodb_autoinc_lock_mode
सेटिंग्स:
- पारंपरिक (0)
- परिणामस्वरूप (1) - डिफ़ॉल्ट
- इंटरलीव्ड (2)
यदि लेन-देन वापस ले लिया गया है, तो auto_increment मान में और अंतराल का अनुभव हो सकता है। एक बल्क इंसर्ट को केवल समग्र रूप से ही वापस रोल किया जा सकता है।
अद्यतन करें: जैसा कि ऊपर बताया गया है, आपको परिदृश्य 1) या 2) मिलेगा , यदि आप उपयोग करते हैं
- मायिसम टेबल इंजन
- या innodb प्री mysql v5.1
- या innodb mysql v5.1 या नए और
innodb_autoinc_lock_mode
के साथ 0 या 1 है
यह बताने का कोई तरीका नहीं है कि कौन पहले डाला जाता है।
आपको परिदृश्य 3) या 4) . मिल सकता है यदि आप उपयोग करते हैं
- innodb के साथ
innodb_autoinc_lock_mode
2
फिर से, यह बताने का कोई तरीका नहीं है कि mysql रिकॉर्ड के क्रम को कैसे और क्यों मिलाता है।
इसलिए, यदि आपका प्रश्न इस तथ्य से संबंधित है कि आप बल्क इंसर्ट के साथ 3 रिकॉर्ड सम्मिलित करते हैं और last_insert_id() केवल पहले डाले गए रिकॉर्ड का auto_increment मान देता है, और आप साधारण जोड़ द्वारा अन्य 2 रिकॉर्ड की आईडी प्राप्त करना चाहते हैं कि आप टेबल इंजन और उपयोग किए गए mysql संस्करण के आधार पर mysql के कॉन्फ़िगरेशन की जांच करने की आवश्यकता हो सकती है।