Ich habe mich umgesehen, aber nicht gefunden, ob es möglich ist.
Ich habe diese MySQL-Abfrage:
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
Die Feld-ID hat einen "eindeutigen Index", daher können nicht zwei davon vorhanden sein. Wenn dieselbe ID bereits in der Datenbank vorhanden ist, möchte ich sie aktualisieren. Aber muss ich wirklich alle diese Felder noch einmal angeben, wie:
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
Oder:
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)
Ich habe alles schon in der Beilage angegeben ...
Ein zusätzlicher Hinweis, ich möchte die Arbeit nutzen, um die ID zu bekommen!
id=LAST_INSERT_ID(id)
Ich hoffe, jemand kann mir sagen, was der effizienteste Weg ist.
a=VALUES(a), b=VALUES(b), ...
ist der Weg, den Sie gehen müssen. So mache ich das für alle meineINSERT ON DUPLICATE KEY UPDATE
Aussagen.