AUTO_INCREMENT विशेषता का उपयोग नई रो के लिए एक अद्वितीय पहचानकर्ता उत्पन्न करने के लिए किया जाता है। यदि किसी कॉलम को 'NOT NULL' घोषित किया गया है, तो उस कॉलम को NULL असाइन करना संभव है ताकि संख्याओं का अनुक्रम उत्पन्न हो सके।
जब किसी AUTO_INCREMENT कॉलम में कोई मान डाला जाता है, तो कॉलम उस मान पर सेट हो जाता है, और अनुक्रम भी रीसेट हो जाता है ताकि यह सबसे बड़े कॉलम मान से क्रमिक सीमा में स्वचालित रूप से मान उत्पन्न करे।
एक मौजूदा 'AUTO_INCREMENT' कॉलम को अपडेट किया जा सकता है जो 'AUTO_INCREMENT' अनुक्रम को भी रीसेट करेगा। सबसे हाल ही में ऑटो-जेनरेटेड 'AUTO_INCREMENT' मान को SQL में 'LAST_INSERT_ID()' फंक्शन का उपयोग करके या 'mysql_insert_id()' का उपयोग करके प्राप्त किया जा सकता है जो एक C API फंक्शन है।
ये फंक्शन कनेक्शन-विशिष्ट हैं, जिसका अर्थ है कि उनके रिटर्न मान अन्य कनेक्शन द्वारा किए गए इन्सर्ट ऑपरेशन से प्रभावित नहीं होते हैं। 'AUTO_INCREMENT' कॉलम के लिए सबसे छोटा पूर्णांक डेटा प्रकार उपयोग किया जा सकता है, जो उपयोगकर्ता द्वारा आवश्यक अधिकतम अनुक्रम मान को रखने के लिए पर्याप्त बड़ा होगा।
AUTO_INCREMENT के लिए नियम
AUTO_INCREMENT विशेषता का उपयोग करते समय निम्नलिखित नियमों का पालन करने की आवश्यकता है:
प्रत्येक टेबल में केवल एक AUTO_INCREMENT कॉलम होता है जिसका डेटा प्रकार आमतौर पर एक पूर्णांक होता है।
AUTO_INCREMENT कॉलम को इंडेक्स किया जाना चाहिए। इसका मतलब है कि यह या तो PRIMARY KEY या UNIQUE इंडेक्स हो सकता है।
AUTO_INCREMENT कॉलम पर NOT NULL कंस्ट्रेंट होना चाहिए।
जब AUTO_INCREMENT विशेषता किसी कॉलम पर सेट की जाती है, तो MySQL स्वचालित रूप से उस कॉलम पर NOT NULL कंस्ट्रेंट जोड़ देता है।
यदि टेबल में कोई id कॉलम नहीं जोड़ा गया है, तो नीचे दिए गए स्टेटमेंट का उपयोग किया जा सकता है:
ALTER TABLE tableName ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (id);
यदि id कॉलम पहले से मौजूद है, तो नीचे दिए गए कमांड का उपयोग किया जा सकता है:
ALTER TABLE tableName AUTO_INCREMENT=specificValue;
यहां, tableName उस टेबल के नाम को संदर्भित करता है जिसके लिए 'AUTO_INCREMENT' कॉलम सेट करने की आवश्यकता है। 'specificValue' एक पूर्णांक को संदर्भित करता है जहां से उपयोगकर्ता द्वारा 'AUTO_INCREMENT' मान शुरू करने के लिए निर्दिष्ट किए जाते हैं।