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

จะไม่อนุญาตให้ป้อนรายการที่ซ้ำกันในตาราง MySQL ได้อย่างไร


ในการไม่อนุญาตให้ป้อนรายการที่ซ้ำกันในตาราง 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 วินาที)