Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

प्राथमिक कुंजी और एक डालने के संबंध में आसान MySQL प्रश्न

आपकी स्पष्टीकरण टिप्पणी कहती है कि आप यह सुनिश्चित करने में रुचि रखते हैं कि यदि कोई अन्य समवर्ती INSERT होता है तो LAST_INSERT_ID() गलत परिणाम नहीं देता है। निश्चिंत रहें कि अन्य समवर्ती गतिविधि की परवाह किए बिना LAST_INSERT_ID() का उपयोग करना सुरक्षित है। LAST_INSERT_ID() केवल वर्तमान सत्र के दौरान उत्पन्न नवीनतम आईडी लौटाता है।

आप इसे स्वयं आजमा सकते हैं:

  1. दो शेल विंडो खोलें, प्रत्येक में mysqlclient चलाएँ और डेटाबेस से कनेक्ट करें।
  2. शैल 1:AUTO_INCREMENT कुंजी वाली तालिका में INSERT करें।
  3. शैल 1:LAST_INSERT_ID() चुनें, परिणाम देखें।
  4. शैल 2:एक ही टेबल में INSERT करें।
  5. शेल 2:LAST_INSERT_ID() चुनें, शेल 1 से अलग परिणाम देखें।
  6. शैल 1:LAST_INSERT_ID() को फिर से चुनें, पहले के परिणाम की पुनरावृत्ति देखें।

यदि आप इसके बारे में सोचते हैं, तो यही एकमात्र तरीका है जो समझ में आता है। ऑटो-इंक्रीमेंटिंग कुंजी तंत्र का समर्थन करने वाले सभी डेटाबेस को इस तरह से कार्य करना चाहिए। यदि परिणाम अन्य ग्राहकों के साथ एक दौड़ की स्थिति पर निर्भर करता है, जो संभवतः समवर्ती रूप से INSERTing कर रहे हैं, तो आपके वर्तमान सत्र में अंतिम सम्मिलित आईडी मान प्राप्त करने का कोई भरोसेमंद तरीका नहीं होगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC प्रभावित पंक्तियों की गलत संख्या लौटाता है

  2. कोई डेटाबेस चयनित नहीं - PHP और MySQL

  3. मैं MySQL में एकाधिक कॉलम के लिए अद्वितीय बाधा कैसे निर्दिष्ट करूं?

  4. अधिकतम मान के संबंध में इनर जॉइन टेबल

  5. MySQL में सप्ताह दर सप्ताह प्रतिशत वृद्धि की गणना कैसे करें