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

เทคนิคใดมีประสิทธิภาพมากกว่าในการแทนที่เร็กคอร์ดที่ซ้ำกันใน MySQL?


หากต้องการแทนที่ระเบียนที่ซ้ำกันและหลีกเลี่ยงข้อผิดพลาดขณะแทรก ให้ใช้ INSERT ON DUPLICATE KEY UPDATE ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable -> ( -> Id int, -> Name varchar(20), -> UNIQUE(Id,Name) -> );Query OK, 0 แถวได้รับผลกระทบ (0.78 วินาที)

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

mysql> แทรกลงในค่า DemoTable (101,'Chris') ในการอัปเดตคีย์ที่ซ้ำกัน Id=10001,Name='Robert';Query OK, 1 แถวได้รับผลกระทบ (0.23 วินาที)mysql> แทรกลงในค่า DemoTable (102,' Mike') ในการอัปเดตคีย์ที่ซ้ำกัน Id=10001,Name='Robert';Query OK, 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงในค่า DemoTable (101,'Chris') ในการอัปเดตคีย์ที่ซ้ำกัน Id=10001,Name='Robert';แบบสอบถามตกลง ได้รับผลกระทบ 2 แถว (0.10 วินาที)

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

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

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

<ก่อนหน้า>+-------+---------+| รหัส | ชื่อ |+-------+---------+| 102 | ไมค์ || 10001 | Robert |+-------+-------+2 แถวในชุด (0.00 วินาที)