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

MySQL-এ INSERT ... ON DUPLICATE KEY UPDATE বাস্তবায়ন

MySQL-এ INSERT ... ON DUPLICATE KEY UPDATE ব্যবহার করে ডুপ্লিকেট ইউনিক/প্রাইমারি কি হলে আপডেট, নয়তো ইনসার্ট করা যায় (UPSERT)।

উদাহরণ: ইউনিক কি সহ টেবিল

mysql> CREATE TABLE DemoTable733 (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(100),
    StudentMarks INT,
    UNIQUE KEY Un_Name (StudentName)
);
Query OK, 0 rows affected (0.60 sec)

ইনসার্ট/আপডেট

mysql> INSERT INTO DemoTable733 (StudentName, StudentMarks) VALUES ('John', 45) ON DUPLICATE KEY UPDATE StudentMarks = 86;
Query OK, 1 row affected (0.19 sec)

mysql> INSERT INTO DemoTable733 (StudentName, StudentMarks) VALUES ('Adam', 65) ON DUPLICATE KEY UPDATE StudentMarks = 86;
Query OK, 1 row affected (0.15 sec)

mysql> INSERT INTO DemoTable733 (StudentName, StudentMarks) VALUES ('Carol', 75) ON DUPLICATE KEY UPDATE StudentMarks = 86;
Query OK, 1 row affected (0.08 sec)

mysql> INSERT INTO DemoTable733 (StudentName, StudentMarks) VALUES ('John', 45) ON DUPLICATE KEY UPDATE StudentMarks = 86;
Query OK, 2 rows affected (0.12 sec)  -- আপডেট হয়েছে (2 rows affected)

ফলাফল

mysql> SELECT * FROM DemoTable733;
+-----------+-------------+--------------+
| StudentId | StudentName | StudentMarks |
+-----------+-------------+--------------+
| 1         | John        | 86           |  <-- আপডেট হয়েছে
| 2         | Adam        | 65           |
| 3         | Carol       | 75           |
+-----------+-------------+--------------+

মূল নীতি

  • PRIMARY KEY বা UNIQUE KEY ডুপ্লিকেট হলে → UPDATE
  • নয়তো → INSERT
  • VALUES(col) ফাংশন দিয়ে ইনসার্ট করার মান অ্যাক্সেস করা যায়: UPDATE col = VALUES(col) + 10
  • এফেক্টেড রো: ইনসার্ট=১, আপডেট=২
  1. MySQL-এ কম্পোজিট কী (Composite Key) দিয়ে ডুপ্লিকেট সারি খুঁজে বের করা

  2. MySQL INSERT ... ON DUPLICATE KEY UPDATE সঠিক সিনট্যাক্স ও উদাহরণ

  3. MySQL-এ INSERT… ON DUPLICATE KEY UPDATE বাস্তবায়ন

  4. MySQL-এ ট্রিগার ব্যবহার করে INSERT কমান্ডে টেবিল আপডেট করা