Page 1 sur 1

mettre à jour et inserer sous conditions

Posté : 25 mai 2007, 16:44
par martial
Bonjour à tous!
J'ai bien compris la commande SQL UPDATE pour mettre à jour une table T_1 à partir des données de la table T_2 à condition que le champ t_1.champ1 soit égal au champ t_2.champ1.

En revanche quelle est la condition pour insérer les données quand t_1.champ1 est différent de t_2.champ2?

En fait je voudrais à la fois mettre à jour quand les champs sont identiques et inserer quand les champs sont différents.

Est ce la même requête UPDATE ou bien faut-il procéder d'une autre façon?

Posté : 25 mai 2007, 16:56
par mere-teresa

Posté : 25 mai 2007, 17:00
par martial
Tout simplement!!!

Merci Mere teresa

Posté : 25 mai 2007, 17:21
par martial
Je n'arrive pas à trouver la bonne syntaxe pour remplacer ou inserer en une fois toutes les données de la Table 2 dans la table 1

Code : Tout sélectionner

REPLACE INTO T_1 SET (t_1.c_1=t_2.c_1,....
J'ai bien parcouru le manuel MYSQL mais je plante...

Posté : 25 mai 2007, 18:07
par Jules Petibidon
hello,

il existe une méthode assez simple si ta version de mysql est pas trop ancienne :

t'appuyer sur les contraintes d'unicité de ta table (si tu l'as bien conçu... sinon tant pis pour toi !) et utiliser ON DUPLICATE KEY

eg:

Code : Tout sélectionner

INSERT INTO matable (champ1, champ2) VALUES ('val1' , 'val2') ON DUPLICATE KEY UPDATE champ2='val2'...