কম্পিউটার টিউটোরিয়াল

MySQL-এ REPLACE INTO ব্যবহার করে ডিলিট এবং ইনসার্ট একসাথে অনুকরণ করা


MySQL REPLACE INTO: DELETE + INSERT-এর সংমিশ্রণ

REPLACE INTO স্টেটমেন্ট একটি রো ইনসার্ট করে। যদি প্রাইমারি কি বা ইউনিক ইন্ডেক্সের কারণে ডুপ্লিকেট কি ত্রুটি হয়, তবে পুরনো রোটি ডিলিট করে নতুন রোটি ইনসার্ট করে। অর্থাৎ, এটি DELETE + INSERT-এর সমতুল্য।

উদাহরণ

টেবিল তৈরি এবং ইউনিক ইন্ডেক্স:

CREATE TABLE DemoTable (Id INT, FirstName VARCHAR(50));
ALTER TABLE DemoTable ADD UNIQUE id_index (Id);

REPLACE INTO ব্যবহার

REPLACE INTO DemoTable VALUES (100, 'Chris');
REPLACE INTO DemoTable VALUES (101, 'David');
REPLACE INTO DemoTable VALUES (100, 'Bob');  -- Id 100 আগেই আছে, তাই রিপ্লেস হবে

ফলাফল যাচাই

SELECT * FROM DemoTable;

আউটপুট:

+------+-----------+
| Id   | FirstName |
+------+-----------+
| 100  | Bob       |
| 101  | David     |
+------+-----------+

দেখুন: Id=100 এর জন্য 'Chris' মুছে 'Bob' আসেছে। 2 rows affected বোঝাচ্ছে ১টি ডিলিট + ১টি ইনসার্ট।

REPLACE INTO vs INSERT ... ON DUPLICATE KEY UPDATE

শৈলীআচরণAUTO_INCREMENT
REPLACE INTOপুরনো রো ডিলিট → নতুন ইনসার্টনতুন অটো-ইনক্রিমেন্ট মান জেনারেট হতে পারে
INSERT ... ON DUPLICATE KEY UPDATEপুরনো রো আপডেট (ডিলিট করে না)অটো-ইনক্রিমেন্ট মান বদলায় না

সুপারিশ: অধিকাংশ ক্ষেত্রে INSERT ... ON DUPLICATE KEY UPDATE ভালো, কারণ এটি আটো-ইনক্রিমেন্ট সংরক্ষণ করে এবং পারফরম্যান্সে ভালো।

  1. MySQL INSERT INTO কমান্ডের সাথে WHERE ক্লজ কীভাবে ব্যবহার করবেন?

  2. Java ব্যবহার করে MySQL ডেটাবেসে ডেটা ইনসার্ট করা (JDBC)

  3. MySQL-এ INSERT INTO SELECT এবং UNION দিয়ে একাধিক রো ইনসার্ট করা

  4. MySQL-এ URL রেকর্ডের অংশ খুঁজে বদলানো (Find & Replace)