DELETE के बाद आईडी अनुक्रम ठीक करना
पंक्ति हटाने के बाद आईडी में अंतर आ जाता है। UPDATE के साथ गणितीय गणना करके आईडी को पुनः क्रमबद्ध किया जा सकता है।
तालिका और डेटा
mysql> CREATE TABLE DemoTable1476 (Id INT);
mysql> INSERT INTO DemoTable1476 VALUES(10), (20), (30), (40);
आईडी 30 हटाना
mysql> DELETE FROM DemoTable1476 WHERE Id = 30;
हटाने के बाद (अंतर आ गया)
+------+
| Id |
+------+
| 10 |
| 20 |
| 40 | -- 30 गायब
+------+
आईडी पुनः क्रमबद्ध करना
mysql> UPDATE DemoTable1476
-> SET Id = Id - 10
-> WHERE Id > 30;
Query OK, 1 row affected (0.14 sec)
परिणाम
+------+
| Id |
+------+
| 10 |
| 20 |
| 30 | -- 40 अब 30 हो गया
+------+
चेतावनी:
- विदेशी कुंजी (Foreign Key) संदर्भ टूट सकते हैं
- समवर्ती पहुंच वाले सिस्टम में समस्या
- उत्पादन में आमतौर पर आईडी पुनः क्रमबद्ध नहीं की जाती
AUTO_INCREMENTअंतर को अनदेखा करता है