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

MySQL-এ কম্পাউন্ড ইউনিক কনস্ট্রেইন্ট প্রয়োগ


UNIQUE কনস্ট্রেইন্ট দিয়ে কম্পাউন্ড ইউনিকিটি

একাধিক কলামের কম্বিনেশনকে ইউনিক করতে টেবিল তৈরির সময় বা পরে UNIQUE কনস্ট্রেইন্ট যোগ করুন।

সিনট্যাক্স (টেবিল তৈরির সময়)

CREATE TABLE yourTableName (
    yourColumnName1 datatype,
    yourColumnName2 datatype,
    yourColumnName3 datatype,
    ...
    UNIQUE yourConstraintName(yourColumnName2, yourColumnName3)
);

উদাহরণ

টেবিল তৈরি (UNIQUE সহ)

mysql> create table UniqueDemo (
    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName varchar(100),
    -> StudentAge int,
    -> StudentMarks int,
    -> UNIQUE age_NameConstraint(StudentName, StudentAge)
    -> );
Query OK, 0 rows affected (0.76 sec)

ইন্ডেক্স/কনস্ট্রেইন্ট যাচাই

mysql> SHOW INDEX FROM UniqueDemo;

আউটপুট

+------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| Table      | Non_unique | Key_name           | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible |
+------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| uniquedemo |          0 | PRIMARY            |            1 | StudentId   | A         |           0 | NULL     | NULL   |      | BTREE      |         |               | YES     |
| uniquedemo |          0 | age_NameConstraint |            1 | StudentName | A         |           0 | NULL     | NULL   | YES  | BTREE      |         |               | YES     |
| uniquedemo |          0 | age_NameConstraint |            2 | StudentAge  | A         |           0 | NULL     | NULL   | YES  | BTREE      |         |               | YES     |
+------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+

age_NameConstraint কম্পোজিট ইউনিক ইন্ডেক্স তৈরি হয়েছে। StudentName এবং StudentAge এর যেকোনো ডুপ্লিকেট কম্বিনেশন রিজেক্ট হবে।

বादে কনস্ট্রেইন্ট যোগ করা

ALTER TABLE yourTable ADD UNIQUE constraint_name (col1, col2);

লাভ: ডেটা ইন্টিগ্রিটি নিশ্চিত, ডুপ্লিকেট এন্ট্রি অটোমেটিক রোধ, কোয়েরি পারফরম্যান্স বেড়ে (ইন্ডেক্স তৈরি হয়)।

  1. MySQL-ে রিজার্ভড কীওয়ার্ড 'order' দিয়ে টেবিল তৈরি করা (ব্যাকটিক ব্যবহার)

  2. MySQL টেবিল থেকে ইউনিকনেস কনস্ট্রেইন্ট (UNIQUE) সরানো

  3. MySQL-এ কম্পাউন্ড ইউনিকনেস (Compound Uniqueness) এনফোর্স করা

  4. MySQL-এ টেবিলের সকল কলাম মুছে দিন (DROP TABLE)