[MySQL] Fusion de UPDATE et INSERT
Résolu
GallyNet
Messages postés
437
Statut
Membre
-
Thibs -
Thibs -
Bien le bonjour, je voudrais savoir s'il existe un moyen de faire des UPDATE mais que lorsque l'enregistrement n'existe pas qu'il l'insert. Ou l'inverse : faire un INSERT mais que si l'enregsitrement existe, on ne fasse qu'un UPDATE.
Et ca en une seul requete ?
Parce que sinon, je suis obligé de faire 2 requetes : un SELET pour savoir si l'enregistrement existe puis le INSERT ou le UPDATE selon le resultat. Et j'ai plusieurs centaines d'enregistrements (dans le meilleur des cas) à mettre a jour/créer. Et faire cela en une seule requete me permettré de gagner un max de temps.
Merci d'avance pour les réponses.
Et ca en une seul requete ?
Parce que sinon, je suis obligé de faire 2 requetes : un SELET pour savoir si l'enregistrement existe puis le INSERT ou le UPDATE selon le resultat. Et j'ai plusieurs centaines d'enregistrements (dans le meilleur des cas) à mettre a jour/créer. Et faire cela en une seule requete me permettré de gagner un max de temps.
Merci d'avance pour les réponses.
3 réponses
-
Salut,
Dans la doc de MySQL tu trouves :INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) -> ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);
http://dev.mysql.com/doc/refman/4.1/en/insert.html
Est-ce que ça peut répondre à tes attentes ?
A+, crabs -
Je l'avais psa vu, merci beaucoup c'est exactement ce que je voulais.
-
La solution proposée par crabs est effectivement une bonne solution.
En alternative il y a également la fonction replace décrite sur http://dev.mysql.com/doc/refman/5.0/fr/replace.html