AUTO_INCREMENT मान सेट करें
MySQL में AUTO_INCREMENT प्राइमरी की को किसी विशिष्ट संख्या (जैसे 1000) से शुरू करने के लिए ALTER TABLE का उपयोग करें।
सिंटैक्स
ALTER TABLE yourTableName AUTO_INCREMENT = 1000;
व्यावहारिक उदाहरण
1. AUTO_INCREMENT टेबल बनाएं
mysql> CREATE TABLE PrimaryKey1000Demo (
-> ProductId INT AUTO_INCREMENT,
-> PRIMARY KEY(ProductId)
-> );
Query OK, 0 rows affected (0.56 sec)
2. AUTO_INCREMENT को 1000 पर सेट करें
mysql> ALTER TABLE PrimaryKey1000Demo AUTO_INCREMENT = 1000;
Query OK, 0 rows affected (0.20 sec)
Records: 0 Duplicates: 0 Warnings: 0
3. रिकॉर्ड डालें (मान निर्दिष्ट किए बिना)
mysql> INSERT INTO PrimaryKey1000Demo VALUES();
mysql> INSERT INTO PrimaryKey1000Demo VALUES();
mysql> INSERT INTO PrimaryKey1000Demo VALUES();
mysql> INSERT INTO PrimaryKey1000Demo VALUES();
4. परिणाम देखें
mysql> SELECT * FROM PrimaryKey1000Demo;
+-----------+
| ProductId |
+-----------+
| 1000 |
| 1001 |
| 1002 |
| 1003 |
+-----------+
4 rows in set (0.00 sec)
महत्वपूर्ण बिंदु
AUTO_INCREMENTमान **अगले** इंसर्ट के लिए शुरुआती बिंदु सेट करता है- मान **वर्तमान अधिकतम मान से बड़ा** होना चाहिए, अन्यथा अनदेखा किया जाता है
- उदाहरण: यदि अधिकतम ID 5000 है, तो
AUTO_INCREMENT = 1000का कोई प्रभाव नहीं - ट्रंकेट के बाद रीसेट:
TRUNCATE TABLEऑटो-इन्क्रीमेंट को 1 पर रीसेट करता है
वर्तमान AUTO_INCREMENT मान देखें
SELECT AUTO_INCREMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'yourDB' AND TABLE_NAME = 'yourTable';
उपयोग केस
- मौजूदा डेटा के साथ मर्ज/माइग्रेशन (ID टकराव रोकने)
- विरासत प्रणाली से आयात (ID रेंज आरक्षित)
- शार्डिंग/विभाजित डेटाबेस (प्रत्येक शार्ड अलग रेंज)
- परीक्षण/डेमो डेटा (वास्तविक डेटा से अलग रेंज)
चेतावनी
मौजूदा डेटा वाली टेबल पर AUTO_INCREMENT कम करना **काम नहीं करता** (वर्तमान मैक्स से कम मान अनदेखा)। बढ़ाना हमेशा काम करता है।