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

MySQL में INSERT और UPDATE एक ही क्वेरी में - ON DUPLICATE KEY UPDATE

MySQL में ON DUPLICATE KEY UPDATE क्लॉज का उपयोग करके एक ही क्वेरी में रिकॉर्ड डालने (INSERT) और अपडेट (UPDATE) दोनों कार्य किए जा सकते हैं। इसे "अपसर्ट" (UPSERT) भी कहा जाता है।

सिंटैक्स

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...)
ON DUPLICATE KEY UPDATE column1 = new_value1, column2 = new_value2, ...;

व्यावहारिक उदाहरण

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL PRIMARY KEY,
    Number INT
);
Query OK, 0 rows affected (0.83 sec)

2. रिकॉर्ड्स डालें और अपडेट करें

mysql> INSERT INTO DemoTable VALUES (1, 190) ON DUPLICATE KEY UPDATE Number = Number + 10;
Query OK, 1 row affected (0.19 sec)

mysql> INSERT INTO DemoTable VALUES (2, 130) ON DUPLICATE KEY UPDATE Number = Number + 10;
Query OK, 1 row affected (0.19 sec)

mysql> INSERT INTO DemoTable VALUES (1, 190) ON DUPLICATE KEY UPDATE Number = Number + 10;
Query OK, 2 rows affected (0.14 sec)  -- डुप्लिकेट मिला, अपडेट हुआ

mysql> INSERT INTO DemoTable VALUES (2, 130) ON DUPLICATE KEY UPDATE Number = Number + 10;
Query OK, 2 rows affected (0.17 sec)  -- डुप्लिकेट मिला, अपडेट हुआ

3. परिणाम देखें

mysql> SELECT * FROM DemoTable;
+----+--------+
| Id | Number |
+----+--------+
| 1  | 200    |  -- 190 + 10 = 200
| 2  | 140    |  -- 130 + 10 = 140
+----+--------+
2 rows in set (0.00 sec)

कैसे काम करता है

  • पहली बार INSERT: नया रिकॉर्ड बनता है (1 row affected)
  • डुप्लिकेट PRIMARY KEY/UNIQUE KEY मिलने पर: UPDATE 실행 होता है (2 rows affected)
  • VALUES() फ़ंक्शन का उपयोग करके डालने वाले मान को संदर्भित कर सकते हैं: UPDATE col = VALUES(col)

उपयोग के मामले

  • काउंटर्स बढ़ाना/घटाना
  • अंतिम अपडेट टाइमस्टैम्प बनाए रखना
  • डुप्लिकेट डेटा रोकते हुए आंकड़े अपडेट करना
  1. - MySQL में INSERT...ON DUPLICATE KEY UPDATE लागू करना

    परिचय जब आप किसी टेबल में नई पंक्ति डालते हैं और वह पंक्ति UNIQUE इंडेक्स या PRIMARY KEY में डुप्लिकेट का कारण बनती है, तो MySQL त्रुटि देता है। इस समस्या को हल करने के लिए ON DUPLICATE KEY UPDATE क्लॉज का उपयोग किया जाता है। इससे मौजूदा पंक्ति नए मानों से अपडेट हो जाती है। उदाहरण: टेबल और यूनिक इं

  1. - MySQL परिणाम सेट को निर्दिष्ट क्रम में कैसे बनाएं?

    परिचय MySQL में FIND_IN_SET() फंक्शन का उपयोग करके परिणाम सेट को विशिष्ट ID क्रम में क्रमबद्ध किया जा सकता है जो प्राकृतिक क्रम से अलग हो। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (0.52 sec) INSERT INTO DemoTable1563 VALUES(1020, Sam); Query OK, 1 row affected (0.14 sec) सभ

  1. - MySQL में INSERT ... SELECT क्वेरी का उपयोग कैसे करें?

    MySQL में INSERT ... SELECT स्टेटमेंट एक ही क्वेरी में एक तालिका से दूसरी तालिका में डेटा कॉपी करने या मानों की गणना करके डालने की अनुमति देता है। सिंटैक्स INSERT INTO target_table (col1, col2, col3, ...) SELECT col1, col2, col3, ... FROM source_table WHERE condition; उदाहरण: मानों को सीधे चुनकर ड