ऑटो-इन्क्रीमेंट कॉलम के लिए मान प्रदान करने की आवश्यकता नहीं
नहीं, ऑटो-इन्क्रीमेंट कॉलम के लिए मान इन्सर्ट करने की कोई आवश्यकता नहीं है। यह स्वचालित रूप से 1 से शुरू होकर क्रमिक मान असाइन करता है।
आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
EmployeeId INT NOT NULL AUTO_INCREMENT,
EmployeeName VARCHAR(30),
EmployeeSalary INT,
PRIMARY KEY (EmployeeId)
);
ऑटो-इन्क्रीमेंट कॉलम के बिना मान इन्सर्ट करें:
mysql> INSERT INTO DemoTable (EmployeeName, EmployeeSalary) VALUES ('Chris', 56789);
mysql> INSERT INTO DemoTable (EmployeeName, EmployeeSalary) VALUES ('David', 78909);
mysql> INSERT INTO DemoTable (EmployeeName, EmployeeSalary) VALUES ('Mike', 100056);
mysql> INSERT INTO DemoTable (EmployeeName, EmployeeSalary) VALUES ('Bob', 150000);
सभी रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Chris | 56789 | | 2 | David | 78909 | | 3 | Mike | 100056 | | 4 | Bob | 150000 | +------------+--------------+----------------+
व्याख्या:
- AUTO_INCREMENT: कॉलम को स्वचालित क्रमिक संख्या के लिए चिह्नित करता है
- INSERT में कॉलम सूची:
(EmployeeName, EmployeeSalary)- EmployeeId शामिल नहीं - स्वचालित असाइनमेंट: MySQL स्वचालित रूप से 1, 2, 3, 4 असाइन करता है
- PRIMARY KEY: ऑटो-इन्क्रीमेंट कॉलम आमतौर पर प्राइमरी की होता है
यदि आप मैन्युअल मान देना चाहें:
INSERT INTO DemoTable (EmployeeId, EmployeeName, EmployeeSalary) VALUES (100, 'Explicit', 50000);
इसके बाद अगला ऑटो-इन्क्रीमेंट मान 101 होगा (MAX+1)।
LAST_INSERT_ID(): अंतिम इन्सर्ट किए गए ऑटो-इन्क्रीमेंट मान को प्राप्त करने के लिए:
INSERT INTO DemoTable (EmployeeName, EmployeeSalary) VALUES ('New', 50000);
SELECT LAST_INSERT_ID(); -- नया EmployeeId लौटाता है
नोट: ऑटो-इन्क्रीमेंट मान पुनः उपयोग नहीं होते (डिलीट की गई पंक्तियों के ID गैप छोड़ते हैं)।