Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में ऑटो इन्क्रीमेंट ID कॉलम के फ्रैगमेंटेशन को कैसे हैंडल करें?


जब भी हम रीनंबर करते हैं, तो समस्या हो सकती है। एक कॉलम के लिए यूनिक ID डिक्लेयर करने की आवश्यकता होती है।

MySQL वर्जन 5.6 InnoDB में, हम INSERT स्टेटमेंट में ID कॉलम शामिल करके और कोई भी विशिष्ट वैल्यू देकर ऑटो_इन्क्रीमेंट ID का पुनः उपयोग कर सकते हैं।

स्थितियाँ निम्न हैं −

  • जब भी हम सबसे अधिक नंबर वाले ID को डिलीट करते हैं
  • जब भी हम MySQL सर्वर को शुरू और बंद करते हैं
  • जब भी हम एक नया रिकॉर्ड इन्सर्ट करते हैं

auto_increment वेरिएबल का उपयोग करके ID ऑटो इन्क्रीमेंट का उदाहरण।

mysql> create table UniqueAutoId 
-> ( 
-> id int auto_increment, 
-> UNIQUE(id) 
-> ); 
Query OK, 0 rows affected (0.45 sec)

टेबल में रिकॉर्ड्स इन्सर्ट करना।

mysql> insert into UniqueAutoId values(); 
Query OK, 1 row affected (0.13 sec) 
mysql> insert into UniqueAutoId values(); 
Query OK, 1 row affected (0.16 sec) 
mysql> insert into UniqueAutoId values(); 
Query OK, 1 row affected (0.07 sec) 
mysql> insert into UniqueAutoId values(); 
Query OK, 1 row affected (0.10 sec) 
mysql> insert into UniqueAutoId values(); 
Query OK, 1 row affected (0.10 sec)

सभी रिकॉर्ड्स डिस्प्ले करना।

mysql> select * from UniqueAutoId;

आउटपुट निम्न है।

+----+
| id |
+----+
| 1  |
| 2  |
| 3  |
| 4  |
| 5  |
+----+
5 rows in set (0.00 sec)

रिकॉर्ड्स डिलीट करने के लिए, हमने DELETE स्टेटमेंट का उपयोग किया है। यहाँ, हम id=5 डिलीट कर रहे हैं।

mysql> DELETE from UniqueAutoId where id=5; 
Query OK, 1 row affected (0.14 sec)

सभी रिकॉर्ड्स डिस्प्ले करना।

mysql> select * from UniqueAutoId;

आउटपुट निम्न है।

+----+
| id |
+----+
| 1  |
| 2  |
| 3  |
| 4  |
+----+
4 rows in set (0.00 sec)

आइए टेबल से फिर से एक रिकॉर्ड डिलीट करें।

mysql> delete from UniqueAutoId where id=2; 
Query OK, 1 row affected (0.15 sec)

फिर से, टेबल से रिकॉर्ड्स डिस्प्ले करना।

mysql> select * from UniqueAutoId;

आउटपुट निम्न है।

+----+
| id |
+----+
| 1  |
| 3  |
| 4  |
+----+
3 rows in set (0.00 sec)

उपरोक्त परिणाम फ्रैगमेंटेशन में परिणत होता है।


  1. - MySQL टेबल से डेटा डिलीट करने के बाद ऑटो इन्क्रीमेंट को 1 से कैसे शुरू करें?

    इसके लिए आप TRUNCATE TABLE कमांड का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1796 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें

  1. - MySQL में प्रारंभिक मान और ऑटो इन्क्रीमेंट कैसे सेट करें?

    AUTO_INCREMENT विशेषता का उपयोग नई रो के लिए एक अद्वितीय पहचानकर्ता उत्पन्न करने के लिए किया जाता है। यदि किसी कॉलम को NOT NULL घोषित किया गया है, तो उस कॉलम को NULL असाइन करना संभव है ताकि संख्याओं का अनुक्रम उत्पन्न हो सके। जब किसी AUTO_INCREMENT कॉलम में कोई मान डाला जाता है, तो कॉलम उस मान पर

  1. - MySQL सीक्वेंस कैसे बनाएं?

    MySQL में सीक्वेंस क्या है? MySQL में, एक सीक्वेंस इंटीजर्स की एक सूची को संदर्भित करता है जो आरोही क्रम में 1 से शुरू होकर या 0 से यदि निर्दिष्ट किया गया हो, उत्पन्न होती है। कई एप्लिकेशन को सीक्वेंस की आवश्यकता होती है जिनका उपयोग विशेष रूप से पहचान के लिए अद्वितीय संख्या उत्पन्न करने के लिए किया