हाँ, बिल्कुल। MySQL में AUTO_INCREMENT कॉलम के लिए मान निर्दिष्ट करना वैकल्पिक है। जब आप INSERT स्टेटमेंट में उस कॉलम को छोड़ देते हैं या NULL/0 पास करते हैं, तो MySQL स्वचालित रूप से अगला अनुक्रमिक मान जनरेट करता है।
सिंटैक्स विकल्प
-- विकल्प 1: कॉलम सूची में ऑटो_इन्क्रीमेंट कॉलम को छोड़ दें INSERT INTO table_name (other_columns) VALUES (values...); -- विकल्प 2: NULL पास करें INSERT INTO table_name VALUES (NULL, values...); -- विकल्प 3: 0 पास करें (यदि NO_AUTO_VALUE_ON_ZERO SQL मोड सक्षम नहीं है) INSERT INTO table_name VALUES (0, values...);
व्यावहारिक उदाहरण
कर्मचारी टेबल बनाते हैं जिसमें ऑटो_इन्क्रीमेंट प्राइमरी की है:
mysql> CREATE TABLE DemoTable1479 (
-> EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeSalary INT
-> );
Query OK, 0 rows affected (0.86 sec)
mysql> INSERT INTO DemoTable1479(EmployeeSalary) VALUES(6800), (5600), (5700), (6900), (15000);
परिणाम - MySQL ने स्वचालित रूप से ID जनरेट किए
mysql> SELECT * FROM DemoTable1479;
+------------+----------------+ | EmployeeId | EmployeeSalary | +------------+----------------+ | 1 | 6800 | | 2 | 5600 | | 3 | 5700 | | 4 | 6900 | | 5 | 15000 | +------------+----------------+ 5 rows in set (0.00 sec)
सर्वोत्तम अभ्यास
- कॉलम सूची निर्दिष्ट करें:
INSERT INTO table (col1, col2) VALUES (...)- यह कोड को अधिक पठनीय और रखरखाव योग्य बनाता है - अंतिम INSERT ID प्राप्त करें:
LAST_INSERT_ID()फ़ंक्शन का उपयोग करें - स्पष्ट मान डालने से बचें: ऑटो_इन्क्रीमेंट कॉलम में मैन्युअल मान डालने से डुप्लिकेट की त्रुटियां हो सकती हैं
आम गलतफहमी
गलत: "मुझे हर INSERT में ID देना होगा"
सही: MySQL स्वचालित रूप से इसे संभालता है। बस कॉलम को छोड़ दें या NULL पास करें।
यह सुविधा डेटा अखंडता सुनिश्चित करती है और एप्लिकेशन कोड को सरल बनाती है।