आइए समझते हैं कि ATUO_INCREMENT कैसे काम करता है -
AUTO_INCREMENT विशेषता का उपयोग नई पंक्तियों के लिए एक विशिष्ट पहचान बनाने के लिए किया जाता है। आइए देखें कि यह कथन कैसे काम करता है। इससे पहले, नीचे दी गई क्वेरी पर विचार करें -
क्वेरी
CREATE TABLE tableName ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id) ); INSERT INTO tableName (name) VALUES (‘val1’),('val2'),('val3'), ('val4'); SELECT * FROM tableName;
आउटपुट
+----+---------+ | id | name | +----+---------+ | 1 | val1 | | 2 | val2 | | 3 | val3 | | 4 | val4 | +----+---------+
उपरोक्त क्वेरी में, 'AUTO_INCREMENT' कॉलम के लिए कोई मान निर्दिष्ट नहीं किया गया था, इसलिए MySQL ने 'id' कॉलम को स्वचालित रूप से संख्याओं का एक क्रम सौंपा। 0 का मान भी स्पष्ट रूप से निर्दिष्ट किया जा सकता है ताकि संख्या अनुक्रम 0 से शुरू हो। यह तभी किया जा सकता है जब 'शून्य पर कोई ऑटो मान नहीं' SQL मोड सक्षम नहीं है।
-
यदि किसी कॉलम को 'NOT NULL' घोषित किया जाता है, तो संख्याओं का एक क्रम उत्पन्न करने के लिए उस कॉलम को NULL असाइन करना संभव है।
-
जब कोई मान AUTO_INCREMENT कॉलम में डाला जाता है, तो कॉलम उस मान पर सेट हो जाता है, और अनुक्रम भी रीसेट हो जाता है ताकि यह सबसे बड़े कॉलम मान से अनुक्रमिक श्रेणी में स्वचालित रूप से मान उत्पन्न कर सके।
-
मौजूदा 'AUTO_INCREMENT' कॉलम को अपडेट किया जा सकता है जो 'AUTO_INCREMENT' क्रम को भी रीसेट कर देगा।
-
सबसे हाल ही में स्वतः उत्पन्न 'AUTO_INCREMENT; SQL में 'LAST_INSERT_ID ()' फ़ंक्शन का उपयोग करके या 'mysql_insert_id ()' का उपयोग करके मूल्य पुनर्प्राप्त किया जा सकता है जो एक सी एपीआई फ़ंक्शन है।
-
ये फ़ंक्शन कनेक्शन-विशिष्ट हैं, जिसका अर्थ है कि उनके रिटर्न मान अन्य कनेक्शनों से प्रभावित नहीं होते हैं जो इन्सर्ट ऑपरेशन करते हैं।
-
'AUTO_INCREMENT' कॉलम के लिए सबसे छोटे पूर्णांक डेटा प्रकार का उपयोग किया जा सकता है, जो उपयोगकर्ता द्वारा आवश्यक अधिकतम अनुक्रम मान रखने के लिए पर्याप्त होगा।
-
जब कॉलम डेटा प्रकार की ऊपरी सीमा तक पहुँच जाता है, तो संख्याओं का एक क्रम उत्पन्न करने का एक और प्रयास किया जाता है। लेकिन यह विफल रहता है।
इसलिए, यदि संभव हो तो UNSIGNED विशेषता का उपयोग करें ताकि कॉलम AUTO_INCREMENT मानों में अधिक से अधिक मानों की अनुमति दी जा सके।