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

MySQL REPLACE INTO: DELETE + INSERT की नकल करना

MySQL REPLACE INTO: मौजूदा पंक्ति हटाकर नई डालना

REPLACE INTO MySQL का एक एक्सटेंशन है जो DELETE + INSERT के संयोजन की तरह काम करता है। यदि प्राइमरी की या यूनिक इंडेक्स पर डुप्लिकेट मान मिलता है, तो पुरानी पंक्ति हटाकर नई डाल देता है।

उदाहरण: REPLACE INTO का व्यवहार

टेबल बनाएं और यूनिक इंडेक्स जोड़ें:

CREATE TABLE DemoTable (
    Id INT,
    FirstName VARCHAR(50)
);

ALTER TABLE DemoTable ADD UNIQUE id_index(Id);

नोट: REPLACE INTO के लिए प्राइमरी की या यूनिक इंडेक्स आवश्यक है।

रिकॉर्ड डालें (डुप्लिकेट ID के साथ)

REPLACE INTO DemoTable VALUES (100, 'Chris');  -- नई पंक्ति
REPLACE INTO DemoTable VALUES (101, 'David');  -- नई पंक्ति
REPLACE INTO DemoTable VALUES (100, 'Bob');    -- डुप्लिकेट ID 100: पुरानी हटेगी, नई डलेगी

आउटपुट देखें:

Query OK, 1 row affected   -- पहली दो के लिए
Query OK, 2 rows affected  -- तीसरी के लिए (1 डिलीट + 1 इन्सर्ट = 2)

अंतिम डेटा

SELECT * FROM DemoTable;
+------+-----------+
| Id   | FirstName |
+------+-----------+
| 100  | Bob       |
| 101  | David     |
+------+-----------+

REPLACE INTO vs INSERT ... ON DUPLICATE KEY UPDATE

विशेषताREPLACE INTOINSERT ... ON DUPLICATE KEY UPDATE
व्यवहारपुरानी पंक्ति हटाता है, नई डालता हैमौजूदा पंक्ति को अपडेट करता है
ऑटो-इन्क्रीमेंटनया ID जनरेट हो सकता हैमौजूदा ID बरकरार रहता है
ट्रिगरDELETE फिर INSERT ट्रिगर फायर होते हैंकेवल UPDATE ट्रिगर फायर होता है
विदेशी कुंजीकैस्केड डिलीट ट्रिगर कर सकता हैसुरक्षित

सिफारिश

अधिकांश मामलों में INSERT ... ON DUPLICATE KEY UPDATE बेहतर है क्योंकि यह अधिक पूर्वानुमेय है और विदेशी कुंजी संबंधों को नहीं तोड़ता।

INSERT INTO DemoTable (Id, FirstName) VALUES (100, 'Bob')
ON DUPLICATE KEY UPDATE FirstName = 'Bob';
  1. - MySQL INSERT INTO कमांड के साथ WHERE क्लॉज कैसे उपयोग करें

    हम नई पंक्ति सम्मिलन के मामले में INSERT INTO कमांड के साथ सशर्त सम्मिलन यानी WHERE क्लॉज का उपयोग कर सकते हैं। यह निम्न तरीकों से किया जा सकता है: डमी टेबल की मदद से इस मामले में, हम कुछ शर्तों के साथ डमी टेबल से मान डालते हैं। सिंटैक्स निम्न हो सकता है: INSERT INTO table_name(column1,column2,...

  1. Java का उपयोग करके MySQL डेटाबेस में डेटा कैसे डालें Java का उपयोग करके MySQL डेटाबेस में डेटा कैसे डालें

    MySQL डेटाबेस में डेटा डालने के लिए, INSERT कमांड का उपयोग करें। सिंटैक्स इस प्रकार है - INSERT INTO yourTableName(yourColumnName1,........yourColumnNameN) VALUES (Value1,Value2,......ValueN); यहां, मैं JAVA प्रोग्रामिंग भाषा के साथ MySQL डेटाबेस में रिकॉर्ड्स डाल रहा हूँ। पहले, हमें MySQL में एक ट

  1. - MySQL में URL रिकॉर्ड के भाग को ढूंढें और बदलें

    समाधान REPLACE() फंक्शन का उपयोग करके स्ट्रिंग के भाग को बदलें। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2025 VALUES (http=//www.gmail.com); अपडेट क्वेरी UPDATE DemoTable2025 SET URL = REPLACE(URL, http=, https:); परिणाम +--------------------------+ | URL | +----------------