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 :roll:

c'est pourquoi je souhaiterai eviter la recuperation puis la reinsertion ce qui multiplierai par 3 le nombre de requetes :cry: 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 :cry:

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 :roll:

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 :oops: