p
u
b
l
i
c
i
t
é
publicité

Discussion: Fusion de BDD

  1. #81

    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 : -6
    Points
    -6

    Par défaut

    Ok donc je reste sur le script !
    Parcontre pour retirer l'auto increment sur la clés primaire ca ne fonctionne pas (j'ai un message d'erreur) je l'ai fais graphiquement parcontre.

  2. #82
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    14 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 : 14 605
    Points : 28 136
    Points
    28 136

    Par défaut

    Du moment que c'est fait !
    Si tu le fais graphiquement dans phpMyAdmin, en principe, il affiche la requête qu'il a exécutée pour faire l'opération.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « 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. #83

    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 : -6
    Points
    -6

    Par défaut

    Je préfere faire ça en commande pour laisser un script après cela. Parce que graphiquement j'ai fais un peu n'importe quoi vu que les requêtes DROP (pour la clés) ne passe pas ...

  4. #84

    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 : -6
    Points
    -6

    Par défaut

    En exécutant les requêtes d'hier (pour supprimer la clés primaire, créer une nouvelle colonne t1_bdd et ajouter celle ci dans la clés primaire) j'ai le message suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Multiple primary key defined

  5. #85
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    14 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 : 14 605
    Points : 28 136
    Points
    28 136

    Par défaut

    Donner le message d'erreur sans donner ce qui a provoqué l'erreur ne sert pas à grand chose !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « 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 !

  6. #86

    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 : -6
    Points
    -6

    Par défaut

    Ok, on reprends à 0 tes requêtes :
    En tapant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE BDD0.table1
    DROP PRIMARY KEY;
    J'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Incorrect table definition; there can be only one auto column and it must be defined as a key
    (Le but est d'ajouter un champs d'identification de la BDD dans la clés primaire)
    Merci.

  7. #87
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    14 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 : 14 605
    Points : 28 136
    Points
    28 136

    Par défaut

    C'est suite à ça que j'avais dit :
    Citation Envoyé par CinéPhil
    OK il faut alors redéfinir la colonne pour supprimer l'auto-incrément :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE BDD3.calibration
    -- redéfinition de la colonne actuellement clé primaire en enlevant AUTO_INCREMENT
    Regarde la doc pour te guider.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « 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 !

  8. #88
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    14 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 : 14 605
    Points : 28 136
    Points
    28 136

    Par défaut

    Ben évidemment !
    Tu lui donnes la contrainte de ne pas être à NULL et tu lui donnes NULL comme valeur par défaut !
    Retire le DEFAULT NULL. Cette colonne est déjà valorisée dans les données que tu va y importer donc la valeur par défaut ne sert ici à rien.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « 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. #89

    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 : -6
    Points
    -6

    Par défaut

    J'ai supprimé l'auto incrémentation graphiquement (n'ayant pas trouver la commande sur la doc), j'obtient maintenant le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error on rename of '.\bdd3\#sql-570_26e' to '.\bdd3\calibration' (errno: 150)
    En exécutant la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE BDD3.calibration
    DROP PRIMARY KEY;
    Merci

  10. #90
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    14 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 : 14 605
    Points : 28 136
    Points
    28 136

    Par défaut

    Tu vas trop vite !

    J'ai répondu à un de tes messages que tu as supprimé depuis !

    Réfléchis avant de te précipiter sur le forum !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « 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 !

  11. #91

    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 : -6
    Points
    -6

    Par défaut

    J'ai essayé plusieurs manipulations mais ça ne fonctionne toujours pas.
    En testant la requête d'insertion avec une valeur identique la colonne dans la calibration_id, j'ai un ERREUR DUPLICATE KEY.
    Et en mettant le DROP KEY par la suite, il ma pas retirer la clés jaune de la colonne calibration_id, uniquement celle de t1_bdd !
    Merci!

  12. #92
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    14 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 : 14 605
    Points : 28 136
    Points
    28 136

    Par défaut

    Donne la description complète de ta table issue de la requête SHOW CREATE TABLE nom_de_la_table
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « 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 !

  13. #93

    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 : -6
    Points
    -6

    Par défaut

    Voilà la table sur les BDD, dans la BDD centralisée on ajoutera comme on a dit un champs t1_bdd pour identifier la BDD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'calibration', 'CREATE TABLE `calibration` (
      `CALIBRATION_id` int(11) NOT NULL AUTO_INCREMENT,
      `CALIBRATION_Name` varchar(45) NOT NULL,
      `CALIBRATION_Tolerance` float DEFAULT NULL,
      `CALIBRATION_Validity_Time` int(11) NOT NULL,
      `CONFIG_CONFIG_id` int(11) NOT NULL,
      PRIMARY KEY (`CALIBRATION_id`),
      KEY `fk_CALIBRATION_CONFIG1` (`CONFIG_CONFIG_id`),
      CONSTRAINT `fk_CALIBRATION_CONFIG1` FOREIGN KEY (`CONFIG_CONFIG_id`) REFERENCES `config` (`CONFIG_id`) ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1'
    Je veux pouvoir entrer des données avec le même calibration_id provenant de BDD différentes.
    Merci;

  14. #94
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    14 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 : 14 605
    Points : 28 136
    Points
    28 136

    Par défaut

    Essaie ceci (tu as le droit d'appeler la colonne BDD autrement bien sûr !) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    -- Suppression de l'auto_increment par redéfinition de la colonne
    ALTER TABLE calibration
    CHANGE CALIBRATION_id CALIBRATION_id int(11) NOT NULL;
     
    -- Suppression de la clé primaire
    ALTER TABLE calibration
    DROP PRIMARY KEY;
     
    -- Ajout de la colonne pour identifier la BDD d'où proviennent les données importées
    ALTER TABLE calibration
    ADD COLUMN BDD TINYINT NOT NULL;
     
    -- Définition de la nouvelle clé primaire
    ALTER TABLE calibration
    ADD PRIMARY KEY (BDD, CALIBRATION_id);
     
    -- Ajout d'un index sur CALIBRATION_id puisque ce n'est plus la première colonne de la clé primaire
    ALTER TABLE calibration
    ADD KEY (CALIBRATION_id);
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « 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 !

  15. #95

    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 : -6
    Points
    -6

    Par défaut

    A l'exécution de la 2éme requête j'ai le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error on rename of '.\bdd_site\#sql-570_29a' to '.\bdd_site\calibration' (errno: 150)

  16. #96
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    14 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 : 14 605
    Points : 28 136
    Points
    28 136

    Par défaut

    C'est pourtant la bonne syntaxe :
    Citation Envoyé par Doc MySQL
    DROP PRIMARY KEY supprime la clef primaire. Si cette clef n'existe pas, cette commande effacera le premier index UNIQUE de la table. (MySQL marque la première clef UNIQUE en tant que PRIMARY KEY si aucune PRIMARY KEY n'a été spécifiée explicitement.)

    Si vous ajoutez un UNIQUE INDEX ou PRIMARY KEY à une table, c'est enregistré avant les index non-UNIQUE pour que MySQL puisse détecter les valeurs dupliquées aussi vite que possible.
    Il semble que l'errno: 150 soit due à la présence d'une clé étrangère qui fait référence à la clé primaire de cette table.

    Tu peux peut-être essayer de créer d'abord l'index sur la colonne puis supprimer la clé primaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    -- Ajout d'un index sur CALIBRATION_id puisque ce n'est plus la première colonne de la clé primaire
    ALTER TABLE calibration
    ADD KEY (CALIBRATION_id);
     
    -- Suppression de la clé primaire
    ALTER TABLE calibration
    DROP PRIMARY KEY;
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « 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 !

  17. #97

    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 : -6
    Points
    -6

    Par défaut

    Ca marche, merci beaucoup !
    Je te tiendrai au courant quant au script complet !

  18. #98

    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 : -6
    Points
    -6

    Par défaut

    J'aimerai maintenant créer un script réutilisable, dans lequel je passe le nom de la BDD en variable, est ce possible de mettre ca dans le fichier SQL d'insertion vers la BDD commune ?

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