मौजूदा टेबल में ALTER TABLE ... ADD COLUMN और AUTO_INCREMENT = मान का उपयोग करके कस्टम प्रारंभ मान वाला ऑटो-इन्क्रीमेंट कॉलम जोड़ सकते हैं।
सिंटैक्स
ALTER TABLE टेबल_नाम ADD COLUMN कॉलम_नाम INT NOT NULL AUTO_INCREMENT PRIMARY KEY, AUTO_INCREMENT = प्रारंभ_मान;
उदाहरण: StudentId कॉलम 1000 से शुरू करें
1. मौजूदा टेबल
mysql> CREATE TABLE DemoTable (StudentName VARCHAR(20));
mysql> INSERT INTO DemoTable VALUES('Robert'), ('Adam'), ('Mike');
mysql> SELECT * FROM DemoTable;
+-------------+ | StudentName | +-------------+ | Robert | | Adam | | Mike | +-------------+
2. ऑटो-इन्क्रीमेंट कॉलम जोड़ें (1000 से शुरू)
mysql> ALTER TABLE DemoTable
-> ADD COLUMN StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> AUTO_INCREMENT = 1000;
3. परिणाम
mysql> SELECT * FROM DemoTable;
+-------------+-----------+ | StudentName | StudentId | +-------------+-----------+ | Robert | 1000 | | Adam | 1001 | | Mike | 1002 | +-------------+-----------+
महत्वपूर्ण बिंदु
AUTO_INCREMENTमान अगली पंक्ति के लिए प्रारंभ मान सेट करता है- मौजूदा पंक्तियों को क्रमिक मान मिलते हैं
- कॉलम
NOT NULLऔरPRIMARY KEYहोना चाहिए - टेबल में पहले से प्राइमरी की नहीं होनी चाहिए
प्रारंभ मान बदलना (बाद में)
ALTER TABLE DemoTable AUTO_INCREMENT = 2000;
वर्तमान ऑटो-इन्क्रीमेंट मान देखें
SHOW TABLE STATUS LIKE 'DemoTable'; -- Auto_increment कॉलम देखें
सावधानी
- बड़ी टेबल पर ALTER TABLE लॉक कर सकता है
- प्रतिकृति (replication) में सावधानी needed
- विदेशी कुंजी संदर्भ होने पर जटिल