188 votes

Mise à jour de la clé dupliquée identique à l'insertion

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X