Ho cercato in giro ma non ho trovato se è possibile.
Ho questa query MySQL:
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
L'ID campo ha un "indice univoco", quindi non possono essercene due. Ora, se lo stesso ID è già presente nel database, vorrei aggiornarlo. Ma devo davvero specificare di nuovo tutti questi campi, come:
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
O:
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)
Ho già specificato tutto nell'inserto ...
Una nota in più, mi piacerebbe usare il lavoro in giro per ottenere l'ID!
id=LAST_INSERT_ID(id)
Spero che qualcuno possa dirmi qual è il modo più efficiente.
a=VALUES(a), b=VALUES(b), ...
è il modo in cui devi procedere. È così che lo faccio per tutte le mieINSERT ON DUPLICATE KEY UPDATE
dichiarazioni.