Page 1 sur 1
sychronisation de deux tables
Posté : 13 juin 2005, 21:17
par dark_vidor
je souhaite ajouter le contenu de mes tables champs a champs (enfin presque)
je cherche une fonction qui pourait me permettre de faire ça juste en disant les deux tables, et les champs que je souhaite ajouté
je sais pas si mysql est capable de faire ça
merci par avance
Posté : 13 juin 2005, 21:29
par Cyrano
Peut-être bien avec un
INSERT ... SELECT
Posté : 13 juin 2005, 21:51
par dark_vidor
voici mes deux tables :
CREATE TABLE `table_a` (
`id` int(3) NOT NULL default '0',
`nom` text NOT NULL,
`zone` int(2) NOT NULL default '0',
`d01` int(4) NOT NULL default '0',
`d02` int(4) NOT NULL default '0',
`d03` int(4) NOT NULL default '0',
`d04` int(4) NOT NULL default '0'
);
CREATE TABLE `table_b` (
`id` int(3) NOT NULL default '0',
`d01` int(4) NOT NULL default '0',
`d02` int(4) NOT NULL default '0',
`d03` int(4) NOT NULL default '0',
`d04` int(4) NOT NULL default '0'
);
Je souhaite que les champs d0x s'ajoute en une seul requete si possible
d01 de la table_a sera egal au d01 qui etait dedans deja + le d01 de la table b.
Mon pb c'est que cette requete doit etre repetée 100 fois parce que la table contient 100 id que cela sera fait 2 fois par semaines ce qui fait rien que pour cette opération 800 requete dans le mois
c'est pourquoi je souhaiterai eviter la recuperation puis la reinsertion ce qui multiplierai par 3 le nombre de requetes

et c'est mon (futur) hégergeur qui sera pas content
Posté : 14 juin 2005, 17:17
par dark_vidor
j'ai beau chercher je trouve rien

Posté : 14 juin 2005, 17:22
par Cyrano
Le lien que je t'ai mis vers la doc MySQL sur INSERT...SELECT ne répond pas à ton problème ?
Posté : 14 juin 2005, 17:32
par dark_vidor
ben nan ...
le pb c'est que avec cette fonction la si j'ai bien compris on se contente de recopier ... or moi je veut ajouter en plus

Posté : 14 juin 2005, 17:36
par Cyrano
ben ce que ça fait, c'est un ajout, tu fais un INSERT dans la table 2 sur la base d'un SELECT dans la table 1, il il te suffit de mettres des clauses WHERE dans le SELECT.
Je ne comprends plus trop ton problème si ça ne le résoud pas...

Posté : 14 juin 2005, 17:41
par dark_vidor
les champs comprennent tous des nombres entiers ...
le pb c'est que en meme tmps ça doit les ajouter
par exemple pour l'id n°1 les valeur des champs d0x de la table a sont les suivante : 5|8|10|0
pour la table b on a : 0|3|1|7
la table a apres l'exectution de la requete devra avoir les valeur suivante pour les d0x : 5|11|11|7 (on ajoute champs a champs au lieu de recup puis d'ajouter puis d'inserer parce que 3 requete alors que la ça en ferai qu'une ^^)
Posté : 14 juin 2005, 18:20
par Cyrano
Ha mais alors ce n'est pas un INSERT mais un UPDATE que tu veux faire...
Faudrait fouiller la doc MySQL, il doit y avoir des fonctions qui permettent de faire ça
Posté : 14 juin 2005, 21:55
par dark_vidor
Ha mais alors ce n'est pas un INSERT mais un UPDATE que tu veux faire...
Faudrait fouiller la doc MySQL, il doit y avoir des fonctions qui permettent de faire ça
oui voila une sorte de Update Add ...
j'ai beau chercher je trouve rien
