ในกรณีที่คุณต้องการให้non-primaryเขตข้อมูลเป็นเกณฑ์ / เงื่อนไขในการON DUPLICATEที่คุณสามารถสร้างความสำคัญเกี่ยวกับตารางที่ที่จะเรียกUNIQUE INDEXDUPLICATE
ALTER TABLE `table` ADD UNIQUE `unique_index`(`name`);
และในกรณีที่คุณต้องการรวมสองฟิลด์เพื่อทำให้เป็นเอกลักษณ์บนตารางคุณสามารถทำได้โดยเพิ่มพารามิเตอร์เพิ่มเติมตัวสุดท้าย
ALTER TABLE `table` ADD UNIQUE `unique_index`(`name`, `age`);
หมายเหตุเพียงตรวจสอบให้แน่ใจว่าได้ลบข้อมูลทั้งหมดที่มีค่าnameและageค่าเท่ากันก่อนอื่นทั้งหมด
DELETE table FROM table AS a, table AS b WHERE a.id < b.id
AND a.name <=> b.name AND a.age <=> b.age;
หลังจากนั้นก็จะทำให้เกิดON DUPLICATEเหตุการณ์
INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE
name = VALUES(name), age = VALUES(age)