MySQL AUTO_INCREMENT: प्रारंभिक मान बदलना
MySQL में AUTO_INCREMENT डिफॉल्ट रूप से 1 से शुरू होता है। इसे ALTER TABLE या टेबल निर्माण के समय किसी अन्य संख्या से शुरू करने के लिए सेट किया जा सकता है।
डिफॉल्ट व्यवहार: 1 से शुरू
CREATE TABLE DemoTable (
UniqueNumber INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (UniqueNumber)
);
INSERT INTO DemoTable VALUES (), (), (), ();
परिणाम:
+--------------+ | UniqueNumber | +--------------+ | 1 | | 2 | | 3 | | 4 | +--------------+
विधि 1: ALTER TABLE से AUTO_INCREMENT बदलें
ALTER TABLE DemoTable AUTO_INCREMENT = 1000;
नए रिकॉर्ड डालें:
INSERT INTO DemoTable VALUES (), (), ();
परिणाम:
+--------------+ | UniqueNumber | +--------------+ | 1 | | 2 | | 3 | | 4 | | 1000 | | 1001 | | 1002 | +--------------+
विधि 2: टेबल निर्माण के समय सेट करें
CREATE TABLE DemoTable (
UniqueNumber INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (UniqueNumber)
) AUTO_INCREMENT = 1000;
महत्वपूर्ण नियम
- नया
AUTO_INCREMENTमान वर्तमान अधिकतम मान से बड़ा होना चाहिए - यदि छोटा मान देंगे, तो MySQL इसे अनदेखा करके वर्तमान मैक्स+1 उपयोग करेगा
AUTO_INCREMENTकेवल एक कॉलम पर हो सकता है (आमतौर पर प्राइमरी की)- इंजन InnoDB/MyISAM दोनों समर्थन करते हैं
वर्तमान AUTO_INCREMENT मान देखें
SHOW TABLE STATUS LIKE 'DemoTable';
Auto_increment कॉलम में अगला मान दिखेगा।
उपयोग केस
- मर्ज/माइग्रेशन में ID टकराव से बचने के लिए
- शार्डिंग: अलग सर्वर पर अलग रेंज (1-1000000, 1000001-2000000)
- लीगेसी डेटा के साथ एकीकरण