ในการแทรกแถวใหม่ลงในตาราง หากแถวนั้นทำให้เกิดการซ้ำซ้อนในดัชนี UNIQUE หรือ PRIMARY KEY อาจมีข้อผิดพลาดเกิดขึ้น ในการแก้ไขปัญหานี้ ให้ใช้ ON DUPLICATE KEY UPDATE ในการใช้สิ่งนี้ในคำสั่ง INSERT แถวที่มีอยู่จะได้รับการอัปเดตด้วยค่าใหม่
ให้เราสร้างตารางก่อน -
mysql> สร้างตาราง DemoTable -> ( -> Value int -> );ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.61 วินาที)
นี่คือแบบสอบถามเพื่อสร้างดัชนี -
mysql> สร้างดัชนีเฉพาะ value_index บน DemoTable(Value);Query OK, 0 แถวได้รับผลกระทบ (0.77 วินาที)ระเบียน:0 รายการซ้ำ:0 คำเตือน:0
แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -
mysql> แทรกลงในค่า DemoTable (40) ในการอัปเดตคีย์ที่ซ้ำกัน Value=Value+1000;Query OK, 1 แถวได้รับผลกระทบ (0.12 วินาที)mysql> แทรกลงในค่า DemoTable (50) ในการอัปเดตคีย์ที่ซ้ำกัน Value=Value+1000;แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า DemoTable (40) ในการอัพเดทคีย์ที่ซ้ำกัน Value=Value+1000; Query OK, 2 แถวได้รับผลกระทบ (0.15 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -
mysql> เลือก *จาก DemoTable;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+-------+| ความคุ้มค่า |+-------+| 50 || 1040 |+-------+2 แถวในชุด (0.00 วินาที)