जब मैं INSERT
किसी तालिका के लिए एक एकल पंक्ति करता AUTO_INCREMENT
हूं जिसमें एक कॉलम होता है तो मैं उस पंक्ति के लिए संग्रहीत LAST_INSERT_ID()
नए AUTO_INCREMENT
'एड वैल्यू' को वापस करने के लिए फ़ंक्शन का उपयोग करना चाहता हूं ।
कई Microsoft SQL सर्वर devs और मानते हैं कि कोई शक नहीं SQL सर्वर ( SCOPE_IDENTITY
और @@IDENTITY
) में इसकी कार्यक्षमता के बिना समान कार्यक्षमता के बारे में पता नहीं है ।
मुझे पता है कि MySQL डॉक्स स्टेट:
जो आईडी जनरेट की गई थी, वह सर्वर पर प्रति कनेक्शन के आधार पर बनी हुई है। इसका अर्थ है कि किसी दिए गए क्लाइंट को फ़ंक्शन द्वारा लौटाया गया
AUTO_INCREMENT
मान उस क्लाइंट द्वाराAUTO_INCREMENT
कॉलम को प्रभावित करने वाले अधिकांश हाल के बयान के लिए उत्पन्न पहला मूल्य है । यह मान अन्य ग्राहकों से प्रभावित नहीं हो सकता है, भले ही वे अपने स्वयं के मूल्यों को उत्पन्न करते हों। यह व्यवहार सुनिश्चित करता है कि प्रत्येक ग्राहक अन्य ग्राहकों की गतिविधि की चिंता किए बिना और ताले या लेनदेन की आवश्यकता के बिना अपनी खुद की आईडी प्राप्त कर सकता है।AUTO_INCREMENT
और यहां तक कि कहने के लिए यहां तक जाएं:
कई क्लाइंट्स का एक साथ उपयोग
LAST_INSERT_ID()
औरAUTO_INCREMENT
कॉलम पूरी तरह से मान्य है।
क्या कोई ज्ञात जोखिम या परिदृश्य LAST_INSERT_ID()
हैं जो सही मूल्य वापस नहीं कर सकते हैं ?
मैं CentOS 5.5 x64 पर MySQL 5.5 और Fedora 16 x64 और InnoDB इंजन का उपयोग कर रहा हूं।
last_insert_id()
अगर आप एक क्वेरी सफल रहा था तो न्यायाधीश के अस्तित्व का उपयोग नहीं करना चाहिए था। यह आखिरकार ईद है, जब आपको पहले से ही पता चल गया था कि मूल्यों की जरूरत है, तो आपको सफलता मिली।