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

MySQL-এ দুটি কলামের জোড়া (pair) কে UNIQUE করতে ALTER TABLE ব্যবহার


COMPOSITE UNIQUE CONSTRAINT যোগ করা

MySQL-এ দুটি বা একাধিক কলামের কম্বিনেশনকে ইউনিক করতে ALTER TABLE ... ADD UNIQUE ব্যবহার করা হয়। এটি কম্পোজিট ইউনিক কনস্ট্রেইন্ট তৈরি করে।

সিনট্যাক্স

ALTER TABLE yourTableName 
ADD UNIQUE yourUniqueName (yourColumnName1, yourColumnName2, ...);

উদাহরণ: টেবিল তৈরি

mysql> CREATE TABLE DemoTable (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentFirstName VARCHAR(100),
    StudentLastName VARCHAR(100),
    StudentAge INT,
    StudentPhoneNumber VARCHAR(20)
);

ইউনিক কনস্ট্রেইন্ট যোগ করা (FirstName + PhoneNumber)

mysql> ALTER TABLE DemoTable 
ADD UNIQUE DemoTable_unique_StudentFirstName_StudentPhoneNumber 
(StudentFirstName, StudentPhoneNumber);
Query OK, 0 rows affected (0.40 sec)

টেস্ট: ডুপ্লিকেট ইনসার্ট করার চেষ্টা

mysql> INSERT INTO DemoTable(StudentFirstName,StudentLastName,StudentAge,StudentPhoneNumber) 
VALUES('John','Doe',21,'9878567878');  -- OK
mysql> INSERT INTO DemoTable(...) VALUES('John','Smith',23,'7654674545'); -- OK
mysql> INSERT INTO DemoTable(...) VALUES('John','Brown',21,'9878567878'); 
-- ERROR 1062 (23000): Duplicate entry 'John-9878567878' for key 'DemoTable_unique_StudentFirstName_StudentPhoneNumber'

মौजूद রেকর্ড

+-----------+------------------+-----------------+------------+--------------------+
| StudentId | StudentFirstName | StudentLastName | StudentAge | StudentPhoneNumber |
+-----------+------------------+-----------------+------------+--------------------+
| 1         | John             | Doe             | 21         | 9878567878         |
| 2         | John             | Smith           | 23         | 7654674545         |
+-----------+------------------+-----------------+------------+--------------------+

নোট

  • ইউনিক নাম (এখানে DemoTable_unique_StudentFirstName_StudentPhoneNumber) ঐচ্ছিক, না দিলে MySQL অটো জেনারেট করে।
  • NULL মানवाले রো একাধিক থাকতে পারে (NULL != NULL ইউনিক চেকে)।
  1. MySQL-এ টেবিল নাম এবং কলাম নাম একসাথে দেখানো (INFORMATION_SCHEMA)

  2. MySQL টেবিলের প্রাইমারি কি অটো ইনক্রিমেন্ট করা

  3. MySQL-এ টেম্পোরারি টেবিলের কলাম লিস্ট দেখানো (SHOW COLUMNS)

  4. MySQL-এ একাধিক কলাম দিয়ে কন্ডিশনাল লজিক (IF ফাংশন)