ฉันค้นหาไปแล้วแต่ไม่พบว่าเป็นไปได้
ฉันแบบสอบถาม MySQL นี้:
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
รหัสฟิลด์มี "ดัชนีที่ไม่ซ้ำ" ดังนั้นจึงไม่มีสองรายการ ตอนนี้ถ้ารหัสเดียวกันนี้มีอยู่ในฐานข้อมูลแล้วฉันต้องการอัปเดต แต่ฉันต้องระบุฟิลด์เหล่านี้ทั้งหมดอีกครั้งเช่น:
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
ON DUPLICATE KEY UPDATE a=2,b=3,c=4,d=5,e=6,f=7,g=8
หรือ:
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
ON DUPLICATE KEY UPDATE a=VALUES(a),b=VALUES(b),c=VALUES(c),d=VALUES(d),e=VALUES(e),f=VALUES(f),g=VALUES(g)
ฉันได้ระบุทุกอย่างไว้ในส่วนเสริมแล้ว ...
หมายเหตุเพิ่มเติมฉันต้องการใช้งานเพื่อรับ ID!
id=LAST_INSERT_ID(id)
ฉันหวังว่าบางคนสามารถบอกฉันได้ว่าวิธีที่มีประสิทธิภาพที่สุดคืออะไร
a=VALUES(a), b=VALUES(b), ...
เป็นวิธีที่คุณต้องไป นั่นเป็นวิธีที่ฉันทำเพื่อINSERT ON DUPLICATE KEY UPDATE
งบของฉันทั้งหมด