MySQL में AUTO_INCREMENT की अधिकतम सीमा कॉलम के डेटा टाइप पर निर्भर करती है। प्रत्येक पूर्णांक टाइप की अपनी सीमा होती है।
इंटीजर टाइप और उनकी AUTO_INCREMENT सीमाएं
| डेटा टाइप | साइन्ड रेंज (अधिकतम) | अनसाइन्ड रेंज (अधिकतम) |
|---|---|---|
| TINYINT | 127 | 255 |
| SMALLINT | 32,767 | 65,535 |
| MEDIUMINT | 8,388,607 | 16,777,215 |
| INT | 2,147,483,647 | 4,294,967,295 |
| BIGINT | 9,223,372,036,854,775,807 | 18,446,744,073,709,551,615 |
उदाहरण: TINYINT की सीमा टेस्ट करें
टेबल बनाएं (TINYINT AUTO_INCREMENT के साथ):
CREATE TABLE LimitOfAutoIncrement (
Id TINYINT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(Id)
);
127 रिकॉर्ड डालें (TINYINT की अधिकतम सीमा):
INSERT INTO LimitOfAutoIncrement VALUES (), (), (), ..., (); -- 127 बार
रिकॉर्ड देखें:
SELECT * FROM LimitOfAutoIncrement;
आउटपुट: Id 1 से 127 तक
सीमा पार करने पर त्रुटि
INSERT INTO LimitOfAutoIncrement VALUES ();
त्रुटि: ERROR 1062 (23000): Duplicate entry '127' for key 'PRIMARY'
सही टाइप चुनने के दिशानिर्देश
- TINYINT: बहुत छोटी टेबल (≤ 255 पंक्तियाँ), लुकअप टेबल
- SMALLINT: छोटी टेबल (≤ 65K पंक्तियाँ)
- MEDIUMINT: मध्यम टेबल (≤ 16M पंक्तियाँ)
- INT: अधिकांश एप्लिकेशन के लिए डिफॉल्ट चॉइस (≤ 4B पंक्तियाँ)
- BIGINT: बहुत बड़ी टेबल, डिस्ट्रिब्यूटेड सिस्टम, उच्च मात्रा
बेस्ट प्रैक्टिस
- डिफॉल्ट रूप से
INT UNSIGNEDयाBIGINT UNSIGNEDउपयोग करें UNSIGNEDनकारात्मक मानों को रोकता है और सीमा दोगुनी करता है- भविष्य की वृद्धि को ध्यान में रखकर टाइप चुनें
- पहुंचने से पहले मॉनिटरिंग अलर्ट सेट करें
वर्तमान AUTO_INCREMENT मान देखें
SHOW TABLE STATUS LIKE 'your_table_name';
Auto_increment कॉलम में अगला मान दिखेगा।