หากต้องการเพิ่มคีย์หลักแบบผสม ให้ใช้คำสั่ง ALTER ให้เราสร้างตารางสาธิตก่อน
แบบสอบถามเพื่อสร้างตาราง
mysql> สร้างตาราง CompositePrimaryKey -> ( -> Id int, -> StudentName varchar(100), -> Age int -> );Query OK, 0 แถวได้รับผลกระทบ (0.56 วินาที)
ยังไม่ได้เพิ่มคีย์หลักแบบผสมด้านบนจนถึงขณะนี้ ให้เราตรวจสอบด้วยความช่วยเหลือของคำสั่ง desc
mysql> อธิบาย CompositePrimaryKey;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+-------------+--------------+------+----+---- -----+-------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+-------------+--------------+------+----+----- ----+-------+| รหัส | int(11) | ใช่ | | NULL | || ชื่อนักเรียน | varchar(100) | ใช่ | | NULL | || อายุ | int(11) | ใช่ | | NULL | |+-------------+--------------+------+----+------ ---+-------+3 แถวในชุด (0.09 วินาที)ดูตัวอย่างผลลัพธ์ด้านบน ไม่มีคีย์เวิร์ดหลัก สิ่งนี้บอกว่าไม่มีคีย์หลักแบบผสม
ตอนนี้ ให้เราใช้คำสั่ง ALTER เพื่อเพิ่มคีย์หลักแบบผสม แบบสอบถามมีดังนี้
mysql> เปลี่ยนตาราง CompositePrimaryKey เพิ่มคีย์หลัก (Id,StudentName) แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (1.26 วินาที) บันทึก:0 รายการซ้ำ:0 คำเตือน:0
ด้านบน ฉันได้เพิ่มคีย์หลักแบบรวมที่มีชื่อคอลัมน์ว่า "Id" และ "StudentName" หากต้องการตรวจสอบเหมือนกัน เราสามารถใช้คำสั่ง DESC แบบสอบถามมีดังนี้
mysql> DESC CompositePrimaryKey;
นี่คือผลลัพธ์
<ก่อนหน้า>+-------------+--------------+------+----+---- -----+-------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+-------------+--------------+------+----+----- ----+-------+| รหัส | int(11) | ไม่ | PRI | NULL | || ชื่อนักเรียน | varchar(100) | ไม่ | PRI | NULL | || อายุ | int(11) | ใช่ | | NULL | |+-------------+--------------+------+----+------ ---+-------+3 แถวในชุด (0.00 วินาที)ดังที่เราเห็นในผลลัพธ์ข้างต้น “PR” หมายความว่าเราได้เพิ่มคีย์หลักแบบผสมในคอลัมน์ Id และ StudentName สำเร็จแล้ว