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

क्या MySQL में ऑटो_इन्क्रीमेंट मान निर्दिष्ट किए बिना रिकॉर्ड डाल सकते हैं?

हाँ, बिल्कुल। 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 पास करें।

यह सुविधा डेटा अखंडता सुनिश्चित करती है और एप्लिकेशन कोड को सरल बनाती है।

  1. - MySQL में एकल INSERT VALUES से कॉमा-अलग करके एकाधिक पंक्तियां डालें

    MySQL में एक ही INSERT स्टेटमेंट में VALUES क्लॉज में कॉमा से अलग करके कई पंक्तियां डाल सकते हैं। यह अलग-अलग INSERT स्टेटमेंट की तुलना में **काफी तेज़** है क्योंकि यह नेटवर्क राउंड-ट्रिप, पार्सिंग, और ट्रांजैक्शन ओवरहेड कम करता है। सिंटैक्स INSERT INTO table_name (col1, col2, col3) VALUES (val

  1. - MySQL में AUTO_INCREMENT टेबल में INSERT INTO SELECT कैसे करें?

    MySQL में AUTO_INCREMENT प्राइमरी की वाली टेबल में INSERT INTO ... SELECT का उपयोग करते समय, आप स्पष्ट रूप से ID मान प्रदान कर सकते हैं या ऑटो-जनरेट होने दे सकते हैं। दोनों दृष्टिकोण वैध हैं लेकिन अलग व्यवहार करते हैं। उदाहरण: स्पष्ट ID के साथ INSERT INTO SELECT ऑटो-इन्क्रीमेंट टेबल बनाएं: mysql&

  1. - MySQL में INSERT स्टेटमेंट लागू करते समय VARCHAR डेटाटाइम रिकॉर्ड में मिनट जोड़ना

    समाधान STR_TO_DATE() से VARCHAR को DATETIME में बदलें, फिर DATE_ADD() से मिनट जोड़ें। उदाहरण टेबल बनाएं: CREATE TABLE DemoTable2026 (ArrivalTime VARCHAR(20)); मिनट जोड़कर डालें: INSERT INTO DemoTable2026 VALUES ( DATE_ADD(STR_TO_DATE(2017-12-01 11:34:45, %Y-%m-%d %H:%i:%s), INTERVAL 20 MINUT