Saya telah mencari-cari tetapi tidak menemukan apakah itu mungkin.
Saya memiliki permintaan MySQL ini:
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
Field id memiliki "indeks unik", jadi tidak mungkin ada dua. Sekarang jika id yang sama sudah ada dalam database, saya ingin memperbaruinya. Tetapi apakah saya benar-benar harus menentukan semua bidang ini lagi, seperti:
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
Atau:
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)
Saya telah menentukan semua yang sudah ada di sisipan ...
Catatan tambahan, saya ingin menggunakan pekerjaan untuk mendapatkan ID!
id=LAST_INSERT_ID(id)
Saya harap seseorang dapat memberi tahu saya apa cara yang paling efisien.
a=VALUES(a), b=VALUES(b), ...
adalah cara yang harus Anda tempuh. Begitulah cara saya melakukannya untuk semuaINSERT ON DUPLICATE KEY UPDATE
pernyataan saya .