ในการไม่อนุญาตให้ป้อนรายการที่ซ้ำกันในตาราง MySQL คุณต้องเพิ่มคีย์เฉพาะ ไวยากรณ์มีดังนี้ −
แก้ไขตารางละเว้น yourTableName เพิ่มคีย์เฉพาะข้อจำกัด (yourColumName);
ไวยากรณ์ด้านบนตั้งค่าคีย์เฉพาะ เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง
ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างตาราง −
mysql> สร้างตาราง RemoveDuplicateEntry −> ( −> Id int, −> Name varchar(100) −> )ENGINE =MyISAM; Query OK, 0 แถวได้รับผลกระทบ (0.15 วินาที)
ตอนนี้คุณสามารถใช้ไวยากรณ์ที่กล่าวถึงในตอนเริ่มต้นได้ แบบสอบถามมีดังนี้ −
mysql> แก้ไขตาราง RemoveDuplicateEntry เพิ่มคีย์เฉพาะข้อจำกัด (Id) แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.56 วินาที) บันทึก:0 รายการซ้ำ:0 คำเตือน:0
ให้เราตรวจสอบโครงสร้างตารางตอนนี้ แบบสอบถามมีดังนี้ −
mysql> อธิบาย RemoveDuplicateEntry;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+-------+--------------+------+----+---------+ --------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+-------+--------------+------+ -----+---------+- ------+| รหัส | int(11) | ใช่ | UNI | NULL | || ชื่อ | varchar(100) | ใช่ | | NULL | |+-------+--------------+------+----+---------+-- -----+2 แถวในชุด (0.00 วินาที)ตอนนี้ ให้เราแทรกบางระเบียนที่มีรายการที่ซ้ำกัน สิ่งนี้จะไม่ถูกแทรกเนื่องจากเราใช้ UNIQUE ด้านบน -
แบบสอบถามที่จะแทรกบันทึกมีดังนี้ -
mysql> แทรกลงในค่า RemoveDuplicateEntry (101,'John');Query OK, 1 แถวได้รับผลกระทบ (0.06 วินาที)
ตอนนี้ หากคุณจะแทรกบันทึกเดิมอีกครั้ง ข้อผิดพลาดต่อไปนี้จะมองเห็นได้ -
mysql> แทรกลงในค่า RemoveDuplicateEntry (101,'John');ข้อผิดพลาด 1062 (23000):รายการซ้ำ '101' สำหรับคีย์ 'Id'
ตรวจสอบระเบียนทั้งหมดจากตารางด้วยคำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก RemoveDuplicateEntry;
ต่อไปนี้เป็นผลลัพธ์ที่แสดงระเบียนที่ไม่มีรายการที่ซ้ำกัน -
<ก่อนหน้า>+------+------+| รหัส | ชื่อ |+------+------+| 101 | John |+------+------+1 แถวในชุด (0.00 วินาที)