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

จะป้องกันการแทรกสองครั้งของ MySQL (รายการซ้ำ) ได้อย่างไร


เพื่อป้องกันรายการที่ซ้ำกัน เพิ่มข้อจำกัด UNIQUE ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable ( Id int ชื่อ varchar (100)); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.79 วินาที)

นี่คือแบบสอบถามเพื่อป้องกันการแทรกสองครั้งของ MySQL โดยใช้ UNIQUE -

mysql> แก้ไขตาราง DemoTable เพิ่มข้อจำกัด id_NameUnKey UNIQUE(Id,Name);Query OK, 0 แถวได้รับผลกระทบ (0.82 วินาที)ระเบียน:0 รายการซ้ำ:0 คำเตือน:0

แทรกระเบียนในตารางโดยใช้คำสั่งแทรก เมื่อเราพยายามบันทึกเดิมอีกครั้ง ข้อผิดพลาด "รายการซ้ำ" จะปรากฏขึ้น -

mysql> แทรกลงในค่า DemoTable (11,'John');Query OK, 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในค่า DemoTable (12,'John'); Query OK, 1 แถวได้รับผลกระทบ (0.21 วินาที )mysql> แทรกลงในค่า DemoTable (11,'John');ข้อผิดพลาด 1062 (23000):รายการซ้ำ '11-John' สำหรับคีย์ 'id_NameUnKey'

แสดงบันทึกจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+------+------+| รหัส | ชื่อ |+------+------+| 11 | จอห์น || 12 | John |+------+------+2 แถวในชุด (0.00 วินาที)