Téléchargement
illégal
Posez votre question Signaler

[MySQL] Fusion de UPDATE et INSERT [Résolu]

GallyNet 438Messages postés 1 juin 2004Date d'inscription - Dernière réponse le 1 avril 2011 à 17:03
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.
Lire la suite 

[MySQL] Fusion de UPDATE et INSERT »

3 réponses
Réponse
+36
moins plus
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
Ajouter un commentaire
Réponse
+2
moins plus
Je l'avais psa vu, merci beaucoup c'est exactement ce que je voulais.
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Ce document intitulé « [MySQL] Fusion de UPDATE et INSERT » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?