आइए समझते हैं कि MySQL में AUTO_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' कॉलम को स्वचालित रूप से संख्याओं का एक अनुक्रम असाइन किया। यदि 'NO AUTO VALUE ON ZERO' SQL मोड सक्षम नहीं है तो 0 का मान भी स्पष्ट रूप से असाइन किया जा सकता है ताकि संख्या अनुक्रम 0 से शुरू हो।
यदि किसी कॉलम को '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 कॉलम को इंडेक्स किया जाना चाहिए। इसका मतलब है कि यह या तो PRIMARY KEY या UNIQUE इंडेक्स हो सकता है।
AUTO_INCREMENT कॉलम पर NOT NULL कंस्ट्रेंट होना चाहिए।
जब AUTO_INCREMENT विशेषता किसी कॉलम पर सेट की जाती है, तो MySQL स्वचालित रूप से उस कॉलम पर NOT NULL कंस्ट्रेंट जोड़ देता है।