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

MySQL-এ ডুপ্লিকেট রো ইনসার্ট রোধ করা


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 |
+----+------------+-------------+

টিপ: প্রাইমারি কি স্বয়ংক্রিয়ভাবে ইউনিক হয়। কম্পোজিট ইউনিক কি দিয়ে একাধিক কলামের মিশ্রণ অনন্য রাখা যায়।

  1. MySQL-এ শেষ ১০টি সারি কীভাবে বের করবেন?

  2. MySQL-এ শর্তসাপেক্ষে সারি আপডেট করার পদ্ধতি (CASE স্টেটমেন্ট ব্যবহার করে)

  3. MySQL-এ কম্পোজিট কী (Composite Key) দিয়ে ডুপ্লিকেট সারি খুঁজে বের করা

  4. MySQL টেবিল থেকে শুধু ৩টি অর্ডার করা সারি কীভাবে বের করবেন?