MySQL-এ ডুপ্লিকেট এন্ট্রি রোধ করে শুধু ইউনিক রেকর্ড ইনসার্ট করতে কলামে UNIQUE INDEX তৈরি করতে হয়।
টেবিল তৈরি
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> FirstName VARCHAR(20)
-> );
FirstName কলামে ইউনিক ইনডেক্স তৈরি
mysql> CREATE UNIQUE INDEX index_on_FirstName
-> ON DemoTable(FirstName);
ডেটা ইনসার্ট (ডুপ্লিকেট চেক সহ)
mysql> INSERT INTO DemoTable(FirstName) VALUES('Chris'); -- OK
mysql> INSERT INTO DemoTable(FirstName) VALUES('Chris'); -- ERROR 1062: Duplicate entry
mysql> INSERT INTO DemoTable(FirstName) VALUES('Robert'); -- OK
mysql> INSERT INTO DemoTable(FirstName) VALUES('Mike'); -- OK
mysql> INSERT INTO DemoTable(FirstName) VALUES('Robert'); -- ERROR 1062: Duplicate entry
ফাইনাল ডেটা
mysql> SELECT * FROM DemoTable;
+----+-----------+
| Id | FirstName |
+----+-----------+
| 1 | Chris |
| 2 | Robert |
| 3 | Mike |
+----+-----------+
বিকল্প পদ্ধতি: MySQL 8.0+ এ INSERT IGNORE বা ON DUPLICATE KEY UPDATE ব্যবহার করেও ডুপ্লিকেট হ্যান্ডল করা যায়।
-- ডুপ্লিকেট হলে ইনগোর করবে
INSERT IGNORE INTO DemoTable(FirstName) VALUES('Chris');
-- ডুপ্লিকেট হলে আপডেট করবে
INSERT INTO DemoTable(FirstName) VALUES('Chris')
ON DUPLICATE KEY UPDATE FirstName='Chris';