Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

उदाहरणों के साथ MySQL AUTO_INCREMENT


आइए समझते हैं कि 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' कॉलम के लिए सबसे छोटा पूर्णांक डेटा प्रकार उपयोग किया जा सकता है, जो उपयोगकर्ता द्वारा आवश्यक अधिकतम अनुक्रम मान को रखने के लिए पर्याप्त बड़ा होगा।

  • जब कॉलम डेटा प्रकार की ऊपरी सीमा तक पहुंच जाता है, तो संख्याओं का अनुक्रम उत्पन्न करने का एक और प्रयास किया जाता है। लेकिन यह विफल हो जाता है।

इसलिए, यदि संभव हो तो UNSIGNED विशेषता का उपयोग करें ताकि कॉलम AUTO_INCREMENT मानों में मानों की अधिक सीमा की अनुमति मिल सके।


  1. - MySQL में डिफ़ॉल्ट '0000-00-00' के साथ DATETIME कॉलम कैसे बनाएं?

    MySQL में DEFAULT कीवर्ड का उपयोग करके DATETIME कॉलम के लिए डिफ़ॉल्ट मान 0000-00-00 00:00:00 सेट किया जा सकता है। सिंटैक्स CREATE TABLE table_name ( column_name DATETIME DEFAULT 0000-00-00 00:00:00 ); उदाहरण mysql> CREATE TABLE DemoTable ( -> EmployeeId INT NOT NULL AUTO_INCREMENT PR

  1. - MySQL में COALESCE से NULL पंक्ति के साथ कॉलम गुणा करें

    जब किसी संख्यात्मक कॉलम में NULL हो, तो गणना (जैसे गुणा) का परिणाम NULL हो जाता है। COALESCE() का उपयोग करके NULL को डिफ़ॉल्ट मान (जैसे 1) से बदल सकते हैं। टेबल बनाएं mysql> CREATE TABLE DemoTable1842 ( NumberOfItems INT, Amount INT ); डेटा डालें (एक पंक्ति में NULL) mysql> INSERT IN

  1. - MySQL में AUTO_INCREMENT कॉलम के साथ काम करना

    आइए समझते हैं कि MySQL में AUTO_INCREMENT कॉलम के साथ कैसे काम करें: AUTO_INCREMENT विशेषता का उपयोग नई रो के लिए एक अद्वितीय पहचानकर्ता उत्पन्न करने के लिए किया जाता है। आइए देखें कि यह स्टेटमेंट कैसे काम करता है। उससे पहले, नीचे दी गई क्वेरी पर विचार करें: क्वेरी CREATE TABLE tableName ( id