Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

สร้าง Composite Unique Key ใน MySQL

เพิ่ม Unique Constraint แบบหลายคอลัมน์ด้วย ALTER TABLE

ใช้ ALTER TABLE ... ADD UNIQUE สร้าง Composite Unique Key บนตารางที่มีอยู่แล้ว

ไวยากรณ์

ALTER TABLE yourTableName ADD UNIQUE yourUniqueName (col1, col2, ...);

ตัวอย่าง

CREATE TABLE makeCompositeKeyDemo (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(40),
    StudentAge INT,
    StudentGrade CHAR(1)
);

เพิ่ม Unique Key

ALTER TABLE makeCompositeKeyDemo 
ADD UNIQUE Name_Age_Grade (StudentName, StudentAge, StudentGrade);

ตรวจสอบโครงสร้าง

DESC makeCompositeKeyDemo;
+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| Id           | int(11)     | NO   | PRI | NULL    | auto_increment |
| StudentName  | varchar(40) | YES  | MUL | NULL    |                |
| StudentAge   | int(11)     | YES  |     | NULL    |                |
| StudentGrade | char(1)     | YES  |     | NULL    |                |
+--------------+-------------+------+-----+---------+----------------+

Key = MUL แสดงว่าอยู่ใน Index (Unique Key)

การทำงาน

  • (John, 20, 'A') + (John, 20, 'A') → Error Duplicate
  • (John, 20, 'B') → OK
  • (John, 21, 'A') → OK
  • (Jane, 20, 'A') → OK

ลบ Unique Key

ALTER TABLE makeCompositeKeyDemo DROP INDEX Name_Age_Grade;