J'ai cherché mais je n'ai pas trouvé si c'était possible.
J'ai cette requête MySQL :
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
Le champ id a un "index unique", donc il ne peut pas y en avoir deux. Maintenant, si le même id est déjà présent dans la base de données, j'aimerais le mettre à jour. Mais dois-je vraiment spécifier tous ces champs à nouveau, comme :
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
Ou :
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)
J'ai déjà tout spécifié dans l'insert...
Une note supplémentaire, j'aimerais utiliser le contournement pour obtenir l'ID !
id=LAST_INSERT_ID(id)
J'espère que quelqu'un pourra me dire quel est le moyen le plus efficace.