[MySQL] Fusion de UPDATE et INSERT

Résolu
GallyNet Messages postés 434 Date d'inscription   Statut Membre Dernière intervention   -  
 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.
A voir également:

3 réponses

crabs Messages postés 908 Date d'inscription   Statut Membre Dernière intervention   507
 
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
43
GallyNet Messages postés 434 Date d'inscription   Statut Membre Dernière intervention   387
 
Je l'avais psa vu, merci beaucoup c'est exactement ce que je voulais.
3
Thibs
 
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
3