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

ALTER TABLE เพื่อเพิ่มคีย์หลักคอมโพสิตใน MySQL หรือไม่


หากต้องการเพิ่มคีย์หลักแบบผสม ให้ใช้คำสั่ง 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 สำเร็จแล้ว