IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Fusion de BDD


Sujet :

Requêtes MySQL

  1. #41
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Non, je suis en alternance c'est pour ça ... Je rebosse dessus depuis le début de la semaine, j'ai testé tes bouts de code et ca veut pas passer apparament !

  2. #42
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Soit.

    la partie remplissage de la BDD3 à partir de BDD 1 et 2 fonctionne pas
    Symptômes ?
    - Pas de données insérées ?
    - Message d'erreur ?
    - 40° de fièvre ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #43
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unknown column 'bdd3.calib_name' in 'where clause'
    La table existe bien ... !

  4. #44
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Je suppose que c'est cette requête qui donne le message d'erreur ?
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    USE bdd_3;
     
    INSERT INTO bdd_3.calib
    SELECT *
    FROM bdd_2.calib
    WHERE NOT EXISTS
    (
    	SELECT 1
    	FROM bdd_3.calibration
    	WHERE bdd_3.calib_name = bdd2.calib_name
    		AND bdd_3.calib_tol = bdd_2.calib_tol
    			AND bdd_3.calib_time = bdd_2.calib_time
     
    );
    bdd_3 est le nom de la base de données, pas celui de la table où pourrait se trouver la colonne calib_name !

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    USE bdd_3;
     
    INSERT INTO bdd_3.calib
    SELECT *
    FROM bdd_2.calib c2
    WHERE NOT EXISTS
    (
    	SELECT 1
    	FROM bdd_3.calibration c3
    	WHERE c3.calib_name = c2.calib_name
    		AND c3.calib_tol = c2.calib_tol
    			AND c3.calib_time = c2.calib_time
     
    );
    Il y a quand même un truc qui m'étonne : tu insères dans une table appelée calib les lignes qui n'existent pas dans une table calibration.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #45
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Tu m'as perdu là ! Je regarde et je reviens. Et merci pour l'aide.
    Le but est de copier uniquement les lignes non existantes dans BDD3. J'ai pas trop compris comment m'y prendre. A quoi correspondes c2 et c3? (Au fait la table s'appele calibration, ils ont la même structure...)

  6. #46
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Tu as dit que les 3 BDD avaient la même structure.
    Si tu veux insérer des lignes non encore existantes dans bdd3.calib, il faut que tu prennes les données dans bdd2.calib et que tu vérifies si elle n'existent pas déjà dans bdd3.calib.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #47
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Dans ton code, a quoi correspond c3 et c2 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    USE bdd_3;
     
    INSERT INTO bdd_3.calib
    SELECT *
    FROM bdd_2.calib c2
    WHERE NOT EXISTS
    (
    	SELECT 1
    	FROM bdd_3.calib c3
    	WHERE c3.calib_name = c2.calib_name
    		AND c3.calib_tol = c2.calib_tol
    			AND c3.calib_time = c2.calib_time
     
    );

  8. #48
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Ce sont des alias qui évitent de répéter le nom de la table.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  9. #49
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    J'ai toujours un problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    use bdd3
    INSERT INTO bdd3.calib
    SELECT *
    FROM bdd2.calib bdd2
    WHERE NOT EXISTS
    (
    	SELECT 1
    	FROM bdd3.calib bdd3
    	WHERE bdd3.calib_name = bdd2.calib_name
    		AND bdd3.calib_tole = bdd2.calib_tole
    );
    j'ai le message d'erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Table 'ultime_2.calib' doesn't exist
    Merci,

  10. #50
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Ca vient de fonctionner (sans comparaison des champs), est il nécessaire de comparer les champs sachant que j'ai des clés primaires et étrangère dans plusieurs tables ?

  11. #51
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    j'ai le message d'erreur suivant:
    TABLE 'ultime_2.calib' doesn't exist
    Le message est clair : la requête tente d'utiliser une table qui n'existe pas. Comme la base de données ultime_2 n'est pas citée dans la requête que tu postes, soit ce n'est pas cette requête qui génère l'erreur, soit tu ne postes pas la requête réelle qui provoque l'erreur.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  12. #52
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    C'est les noms des bases au fait que j'avais changé.

  13. #53
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Donne donc la vraie requête qui provoque l'erreur !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  14. #54
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Vous me conseillez un script batch/sql ou bien l'utilisation d'un logiciel pour la fusion des BDD (on peut avoir de nouvelles BDD et le probléme du script c'est qu'il faudra ajouter des lignes de codes dans ce cas ...). Si le logiciel me permettra de réaliser cela plus rapidement, vous conseiller quelle logiciel ?
    Pourra t-on automatiser la tâche de fusion des BDD ?
    Merci beaucoup!

  15. #55
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Parce qu'au fait, j'ai le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cannot add or update a child row: a foreign key constraint fails (`bdd3`.`calibration`, CONSTRAINT `fk_CALIBRATION_CONFIG1` FOREIGN KEY (`CONFIG_CONFIG_id`) REFERENCES `config` (`CONFIG_id`) ON DELETE CASCADE ON UPDATE CASCADE)
    Pourtant dans bdd3 j'ai ajouter une valeur à config_id à l'identique de bdd2 !

  16. #56
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Un nouveau soucis (pour les précédents ca c'est amélioré) , j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Duplicate entry '3' for key 'PRIMARY'
    Au fait sur la BDD2 j'ai une ligne avec une clés primaire 3 et sur la BDD3 j'ai déjà une ligne avec l'id 3 mais ce ne sont pas les mêmes informations ... Il refuse d'importer la ligne de la BDD2 !
    Merci beaucoup!

  17. #57
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    L'idéal serait d'importer dans bdd3 uniquement les champs suivants la clés primaires, (la clés primaires s'incrémente toute seules de toute façons), je ne vois pas comment faire ?
    J'ai remplacé l'étoile par les champs (sauf la clés primaire) mais je suis obligé de taper le champs id apparament sinon j'ai erreur du type (count culomn ...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO bdd3.config
    SELECT *
    FROM bdd2.config bdd2
    Merci beaucoup!

  18. #58
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Personne ?
    J'ai deux BDD de même structure, le but est d'importer les données de la 1ére BDD dans la 2éme, pour éviter les doublons j'aimerai donc ne pas copier le champs _id (clés primaires) des tables, c'est possible ?
    Ma requêtes pour l'instant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO bdd3.config
    SELECT *
    FROM bdd2.config bdd2
    J'avais penser à mettre à la place de l'étoile les collones suivant la clés primaire mais j'ai un message d'erreur (count colonm) ...
    Merci de m'aider !!!

  19. #59
    Membre émérite
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Points : 2 814
    Points
    2 814
    Par défaut
    Pourquoi ne pas utiliser les mécanismes de réplication proposés par MySQL ? C'est fait justement pour aller répliquer les données sur d'autres serveurs, donc tu peux le faire en local.

    Documentation

  20. #60
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Au fait, chaque PC a une BDD en local (obligatoirement car les PC ne sont pas forcement connectés au réseau donc pas de maitre serveur ...), je voudrais donc créer une BDD sur mon poste avec les résultats des BDD locales ...
    J'ai donc penser à importer les BDD locales régulièrement sur mon poste et envoyer ensuite les lignes vers la BDD centralisés (elle aussi sur mon poste) cependant j'aimerai éviter les doublons en n'envoyant pas la clés primaire ..;
    J'ai penser à la requête précedente mais ça ne fonctionne pas, à la place de l'étoile je ne peux pas mettre les collones suivant la clés primaire ! Une idée parce que je galére vraimment sur ce sujet !!!
    Merci beaucoup

Discussions similaires

  1. [WD-2007] syntaxe champ de fusion (champ bdd de type float)
    Par Botzouk dans le forum Word
    Réponses: 2
    Dernier message: 10/12/2010, 23h17
  2. Fusion/consolidation BDD
    Par Needz dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/08/2010, 10h49
  3. Fusion de deux lignes d'une Bdd
    Par breizhlama dans le forum Requêtes
    Réponses: 5
    Dernier message: 10/05/2010, 11h45
  4. [WD-2003] fusion publipostage bdd excel
    Par kikim66 dans le forum Word
    Réponses: 5
    Dernier message: 08/04/2009, 15h22
  5. Fusion BDD SQL Server
    Par nadja dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/07/2006, 16h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo