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

MySQL-এ ALTER TABLE ADD UNIQUE দিয়ে কম্পোজিট ইউনিক কি তৈরি করা

বিদ্যমান টেবিলে একাধিক কলাম মিলিয়ে কম্পোজিট UNIQUE KEY যোগ করতে ALTER TABLE ... ADD UNIQUE ব্যবহার করুন।

সিনট্যাক্স

ALTER TABLE table_name 
ADD UNIQUE KEY constraint_name (col1, col2, ...);

উদাহরণ

CREATE TABLE make_composite_key_demo (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    student_name VARCHAR(40),
    student_age INT,
    student_grade CHAR(1)
);

বর্তমান কাঠামো (ইউনিক কি নেই)

DESC make_composite_key_demo;
+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| id           | int(11)     | NO   | PRI | NULL    | auto_increment |
| student_name | varchar(40) | YES  |     | NULL    |                |
| student_age  | int(11)     | YES  |     | NULL    |                |
| student_grade| char(1)     | YES  |     | NULL    |                |
+--------------+-------------+------+-----+---------+----------------+

কম্পোজিট ইউনিক কি যোগ করা

ALTER TABLE make_composite_key_demo 
ADD UNIQUE KEY uniq_name_age_grade (student_name, student_age, student_grade);

পরিবর্তন পর কাঠামো

DESC make_composite_key_demo;
+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| id           | int(11)     | NO   | PRI | NULL    | auto_increment |
| student_name | varchar(40) | YES  | MUL | NULL    |                |
| student_age  | int(11)     | YES  |     | NULL    |                |
| student_grade| char(1)     | YES  |     | NULL    |                |
+--------------+-------------+------+-----+---------+----------------+

Key কলামে MUL বোঝায় এই কলাম কম্পোজিট ইনডেক্সের অংশ।

ডুপ্লিকেট টেস্ট

INSERT INTO make_composite_key_demo (student_name, student_age, student_grade) 
VALUES ('Alice', 20, 'A');  -- OK

INSERT INTO make_composite_key_demo (student_name, student_age, student_grade) 
VALUES ('Alice', 20, 'A');  -- ERROR 1062: Duplicate entry 'Alice-20-A'

ইন্ডেক্স অর্ডারের গুরুত্ব

(student_name, student_age, student_grade) অর্ডার:

  • সাবশ: WHERE student_name = ? AND student_age = ? AND student_grade = ? — কাজ করে
  • সাবশ: WHERE student_name = ? — কাজ করে (লিফটমোস্ট প্রিফিক্স)
  • সাবশ: WHERE student_age = ? — ইনডেক্স ব্যবহার করে না

ইউনিক কি সরানো

ALTER TABLE make_composite_key_demo DROP INDEX uniq_name_age_grade;

নামিং কনভেনশন

uniq____
-- উদাহরণ: uniq_student_name_age_grade
            
            
  1. MySQL-এ IF() ফাংশন ব্যবহার করে NULL ডেটা যাচাই করুন

  2. MySQL ডেটাবেসে ফরেন কী আইডেন্টিফাই করা

  3. MySQL-এ information_schema দিয়ে কম্পোজিট প্রাইমারি কী চিহ্নিত করা

  4. MySQL에서 기본 키(Primary Key) 삭제하기

কপিরাইট © https://bd.wsxdn.com সমস্ত অধিকার সংরক্ষিত