UNIQUE কনস্ট্রেইন্ট ব্যবহার করে ডুপ্লিকেট রোধ
MySQL-এ ডুপ্লিকেট রো রোধের সবচেয়ে সহজ উপায় হলো UNIQUE কনস্ট্রেইন্ট ব্যবহার করা। এটি এক বা একাধিক কলামের কম্বিনেশনকে অনন্য (unique) করে দেয়।
সিনট্যাক্স
ALTER TABLE yourTableName ADD UNIQUE(yourColumnName1, yourColumnName2, ...N);
উদাহরণ
টেবিল তৈরি
mysql> create table avoidInsertingDuplicateRows (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> FirstValue int,
-> SecondValue int
-> );
Query OK, 0 rows affected (0.53 sec)
টেবিল কাঠামো দেখুন
mysql> desc avoidInsertingDuplicateRows;
আউটপুট
+-------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | FirstValue | int(11) | YES | | NULL | | | SecondValue | int(11) | YES | | NULL | | +-------------+---------+------+-----+---------+----------------+
UNIQUE কনস্ট্রেইন্ট যোগ করুন
mysql> ALTER TABLE avoidInsertingDuplicateRows ADD UNIQUE(FirstValue, SecondValue);
ডেটা ইনসার্ট করে টেস্ট করুন
mysql> insert into avoidInsertingDuplicateRows(FirstValue,SecondValue) values(10,20); Query OK, 1 row affected (0.24 sec) mysql> insert into avoidInsertingDuplicateRows(FirstValue,SecondValue) values(10,20); ERROR 1062 (23000): Duplicate entry '10-20' for key 'FirstValue'
দ্বিতীয় ইনসার্ট ফেইল হয়েছে কারণ (10,20) কম্বিনেশন ইতিমধ্যে আছে।
রেকর্ড যাচাই
mysql> select * from avoidInsertingDuplicateRows;
আউটপুট
+----+------------+-------------+ | Id | FirstValue | SecondValue | +----+------------+-------------+ | 1 | 10 | 20 | +----+------------+-------------+
টিপ: প্রাইমারি কি স্বয়ংক্রিয়ভাবে ইউনিক হয়। কম্পোজিট ইউনিক কি দিয়ে একাধিক কলামের মিশ্রণ অনন্য রাখা যায়।