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

MySQL Auto Increment Columns on TRANSACTION, COMMIT, और ROLLBACK

नहीं, ऑटो-इन्क्रीमेंट मैकेनिज्म जरूरी लेन-देन के दायरे से बाहर काम करें, क्योंकि हो सकता है कि कोई अन्य उपयोगकर्ता आपके लेन-देन को समाप्त करने से पहले उसी तालिका में सम्मिलित हो रहा हो। यह जानने से पहले कि आपका लेन-देन आपके द्वारा अभी-अभी आवंटित मूल्य का उपयोग कर रहा है या नहीं, दूसरे उपयोगकर्ता का लेन-देन अगला मान आवंटित करने में सक्षम होना चाहिए।

अपनी टिप्पणी दें:यदि मैं इसे और अधिक स्पष्ट रूप से कह सकता हूं, तो लेनदेन के दायरे में कोई भी बदलाव वापस लाया जा सकता है। ऑटो-इन्क्रीमेंट काउंटर को वापस रोल नहीं किया जाता है, इसलिए यह परमाणुता का पालन नहीं करता है लेनदेन का। न ही यह अलगाव का पालन करता है क्योंकि किसी अन्य लेन-देन को अगला मूल्य मिलता है, भले ही आपके लेन-देन ने अभी तक प्रतिबद्ध नहीं किया है।

जिस तरह से ऑटो-इन्क्रीमेंट काम करता है, उसका मतलब है कि कभी-कभी, यदि आप कुछ पंक्तियाँ डालते हैं और फिर अपने लेन-देन को वापस लेते हैं, तो आपके द्वारा ऑटो-इन्क्रीमेंट के साथ आवंटित मूल्य हमेशा के लिए खो जाते हैं!

लेकिन ये ठीक है. प्राथमिक कुंजी मान अद्वितीय होने चाहिए, लेकिन उन्हें लगातार होने की आवश्यकता नहीं है। दूसरे शब्दों में, वे पंक्ति संख्या नहीं हैं, और आपको उनका इस तरह उपयोग नहीं करना चाहिए। इसलिए आपको कभी भी ऑटो-इन्क्रीमेंट द्वारा बनाए गए मानों को कम करने की आवश्यकता नहीं होनी चाहिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टेबल बनाते समय Django MySQL त्रुटि

  2. यूनिक्स टाइमस्टैम्प को इंट कॉलम में कैसे संग्रहीत किया जाना चाहिए?

  3. PHP ईमेल सत्यापन लिंक के लिए सबसे आसान तरीका

  4. दूरस्थ कंप्यूटर से MySQL तक कैसे पहुँचें (लोकलहोस्ट नहीं)?

  5. मैं कैसे जांच सकता हूं कि MySQL तालिका कॉलम भी मौजूद है या नहीं?