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

เพิ่มคีย์เฉพาะลงในตารางที่มีอยู่ (ด้วยแถวที่ไม่ซ้ำ) ได้อย่างไร


คุณสามารถเพิ่มคีย์เฉพาะลงในตารางที่มีอยู่โดยใช้คำสั่ง alter ไวยากรณ์มีดังนี้ −

เปลี่ยนตาราง yourTableName เพิ่มข้อจำกัด yourConstraintName UNIQUE(yourColumnName1,yourColumnName2,............N);

เพื่อให้เข้าใจแนวคิดข้างต้น ให้เราสร้างตารางที่มีบางคอลัมน์ แบบสอบถามเพื่อสร้างตาราง −

mysql> สร้างตาราง MovieCollectionDemo −> ( −> MovieId int, −> MovieDirectorName varchar(200), −> NumberOfSongs int unsigned −> ); สืบค้นตกลง 0 แถวได้รับผลกระทบ (0.62 วินาที)

ตอนนี้คุณสามารถตรวจสอบว่าตารางไม่มีข้อจำกัดเฉพาะใดๆ แบบสอบถามเพื่อตรวจสอบข้อจำกัดเฉพาะมีดังนี้ -

mysql> อธิบาย MovieCollectionDemo;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-------------------+-----------------+------+ -----+---------+-------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+---------------------------------------------------------+------+- ----+---------+-------+| MovieId | int(11) | ใช่ | | NULL | || ชื่อผู้กำกับภาพยนตร์ | varchar(200) | ใช่ | | NULL | || Number OfSongs | int(10) ไม่ได้ลงนาม | ใช่ | | NULL | |+-------------------+----------------------+------+-- ---+---------+-------+3 แถวในชุด (0.00 วินาที)

ตอนนี้คุณสามารถเพิ่มคีย์เฉพาะจากไวยากรณ์ด้านบนได้ เรากำลังเพิ่มคีย์เฉพาะในคอลัมน์ MovieId แบบสอบถามมีดังนี้ −

mysql> แก้ไขตาราง MovieCollectionDemo เพิ่มข้อจำกัด uni_moviecollectio เฉพาะ (MovieId) ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.46 วินาที) บันทึก:0 รายการซ้ำ:0 คำเตือน:0

ให้เราดูทั้งตารางและคอลัมน์ MovieId เพื่อดูว่ามีคีย์เฉพาะหรือไม่

mysql> อธิบาย MovieCollectionDemo;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-------------------+-----------------+------+ -----+---------+-------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+---------------------------------------------------------+------+- ----+---------+-------+| MovieId | int(11) | ใช่ | UNI | NULL | || ชื่อผู้กำกับภาพยนตร์ | varchar(200) | ใช่ | | NULL | || Number OfSongs | int(10) ไม่ได้ลงนาม | ใช่ | | NULL | |+-------------------+----------------------+------+-- ---+---------+-------+3 แถวในชุด (0.02 วินาที)

เอาต์พุตด้านบนแสดง "UNI" ซึ่งหมายความว่าช่อง "MovieId" มีคีย์เฉพาะ