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

จะป้องกัน INSERT ที่ซ้ำกันใน MySQL ได้อย่างไร


สำหรับสิ่งนี้ คุณสามารถใช้ UNIQUE INDEX −

แก้ไขตาราง yourTableName ADD UNIQUE INDEX(yourColumnName1, yourColumnName2,....N);

ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable -> ( -> Value1 int, -> Value2 int -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.55 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อเพิ่มดัชนีเฉพาะ -

mysql> แก้ไขตาราง DemoTable ADD UNIQUE INDEX(Value1, Value2); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.54 วินาที) บันทึก:0 รายการซ้ำ:0 คำเตือน:0

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

หมายเหตุ − ใช้คำสั่ง INSERT IGNORE แทนคำสั่ง INSERT หากระเบียนไม่ซ้ำกับระเบียนที่มีอยู่ MySQL จะแทรกระเบียนนั้นตามปกติ หากเร็กคอร์ดซ้ำกัน คีย์เวิร์ด IGNORE จะบอกให้ MySQL ละทิ้งโดยไม่เกิดข้อผิดพลาด

mysql> แทรกการละเว้นลงในค่า DemoTable (10,20) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกละเว้นลงในค่า DemoTable (10,20) แบบสอบถามตกลง 0 แถวได้รับผลกระทบ 1 คำเตือน (0.10 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

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

ผลลัพธ์

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

<ก่อนหน้า>+---------+-------+| Value1 | ค่าที่ 2 |+---------+-------+| 10 | 20 |+-------+---------+1 แถวในชุด (0.00 วินาที)