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

ऑटो इंक्रीमेंट लागू होने पर क्या MySQL हटाए गए आईडी का पुन:उपयोग करेगा

जब आप डेटाबेस को पुनरारंभ करते हैं तो InnoDB auto_increment फ़ील्ड को रीसेट करता है।

जब InnoDB पुनरारंभ होता है, तो यह कॉलम में उच्चतम मान पाता है और फिर वहीं से शुरू होता है।

MyISAM में ऐसा नहीं होगा क्योंकि यह अंतिम बढ़ी हुई आईडी को कैश करता है।

अपडेट करें

यह सुविधा/बग 2003 से मौजूद है और इससे गंभीर समस्याएं हो सकती हैं। नीचे दिए गए उदाहरण को लें,

  1. तालिका t1 में एक ऑटो-इंक प्राथमिक कुंजी है।

  2. तालिका t2 में t1 में प्राथमिक कुंजी के लिए एक विदेशी कुंजी "बाधा" के बिना एक कॉलम है। दूसरे शब्दों में, जब t1 में एक पंक्ति हटा दी जाती है तो t2 में संबंधित पंक्तियाँ अनाथ हो जाती हैं।

  3. जैसा कि हम जानते हैं कि InnoDB पुनरारंभ के साथ, एक आईडी कर सकते हैं पुनः जारी किया जाए। इसलिए t2 में अनाथ पंक्तियों को t1 में नई पंक्तियों से गलत तरीके से जोड़ा जा सकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पूर्ण पाठ खोज इंजन की तुलना - Lucene, Sphinx, Postgresql, MySQL?

  2. MySQL में डिफ़ॉल्ट बाधा नाम क्या है?

  3. MySQL - पायथन का उपयोग करके विभिन्न सर्वरों पर डेटाबेस के बीच जुड़ता है?

  4. मैसकल ड्राइवर की समस्या

  5. पायथन MySQLdb अपवाद