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

MySQL-এ UNIQUE INDEX বিনা INSERT IGNORE ব্যবহার করে ডুপ্লিকেট এറর দেখানো

MySQL-এ INSERT IGNORE ব্যবহার করলে ডুপ্লিকেট এরি স্লেন্তলি স্কিপ হয়। ডুপ্লিকেট এরি বাধ্যতামূলক করতে চাইলে UNIQUE INDEX তৈরি করুন এবং IGNORE ব্যবহার করবেন না।

টেবিল তৈরি

mysql> CREATE TABLE DemoTable (FirstName VARCHAR(100));
Query OK, 0 rows affected (0.58 sec)

UNIQUE INDEX যোগ করা

mysql> ALTER TABLE DemoTable ADD UNIQUE INDEX (FirstName);
Query OK, 0 rows affected (0.50 sec)
Records: 0 Duplicates: 0 Warnings: 0

MySQL ডক্স অনুযায়ী: "Without IGNORE, a row that duplicates an existing UNIQUE index or PRIMARY KEY value in the table causes a duplicate-key error and the statement is aborted."

ডেটা ইনসার্ট (IGNORE ছাড়া - ডুপ্লিকেটে এরর)

mysql> INSERT INTO DemoTable VALUES ('Chris');
Query OK, 1 row affected (0.32 sec)
mysql> INSERT INTO DemoTable VALUES ('Robert');
Query OK, 1 row affected (0.09 sec)
mysql> INSERT INTO DemoTable VALUES ('David');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable VALUES ('Robert');
ERROR 1062 (23000): Duplicate entry 'Robert' for key 'FirstName'
mysql> INSERT INTO DemoTable VALUES ('Chris');
ERROR 1062 (23000): Duplicate entry 'Chris' for key 'FirstName'
mysql> INSERT INTO DemoTable VALUES ('Sam');
Query OK, 1 row affected (0.12 sec)

রেকর্ড দেখানো (ডুপ্লিকেট ইনসার্ট হয়নি)

mysql> SELECT * FROM DemoTable;

আউটপুট:

+-----------+
| FirstName |
+-----------+
| Chris     |
| David     |
| Robert    |
| Sam       |
+-----------+
4 rows in set (0.00 sec)

INSERT IGNORE ব্যবহার করলে কী হয়?

INSERT IGNORE INTO DemoTable VALUES ('Robert'); -- এরর নেই, স্লেন্তলি স্কিপ, Warnings: 1

ON DUPLICATE KEY UPDATE (আপসার্ট)

INSERT INTO DemoTable VALUES ('Robert') 
ON DUPLICATE KEY UPDATE FirstName = 'Robert_Updated';

সামারি

স্টেটমেন্টডুপ্লিকেট হলেরিটার্ন
INSERTERROR 1062, অ্যাবোর্টএরি
INSERT IGNOREস্লেন্তলি স্কিপOK, Warning
INSERT ... ON DUPLICATE KEY UPDATEআপডেট করেOK (affected rows: 2)
REPLACE INTOপুরোনো ডিলিট করে নতুন ইনসার্টOK (affected rows: 2)
  1. MySQL টেবিলে ডুপ্লিকেট রেকর্ড ইনসার্ট করার সময় এরর প্রদর্শন করা

  2. MySQL-এ GROUP BY HAVING ব্যবহার করে ডুপ্লিকেট কলাম মান বের করা

  3. MySQL-এ LPAD() এবং COALESCE() দিয়ে প্রিসিডিং জিরো সহ আইডি জেনারেট করা

  4. Java-এ JDBC ResultSet ব্যবহার করে MySQL টেবিলের ডেটা দেখানো