Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Erreur 1072][MYSQL] Key column doesn't exist

Sujet résolu
    30 septembre 2021 à 8:59:15

    Bonjour à tous,

    Je suis en train de réaliser une base de données avec mysql-workbench (graphique) et lors de la synchronisation avec MYSQL j’obtiens l'erreur:

    Error Code: 1072. Key column 'civilite_id_civilite' doesn't exist in table

    ci dessous le script généré par mysql:

    ALTER TABLE `db_ecole`.`parents` 
            COLLATE = utf8mb4_general_ci ,
            DROP COLUMN `idx_emploi`,
            DROP COLUMN `idx_civilite`,
            ADD COLUMN `idx_civilite` INT(11) NOT NULL AFTER `id_parents`,
            ADD COLUMN `idx_emploi` INT(11) NOT NULL AFTER `parents_mdp`,
            DROP PRIMARY KEY,
            ADD PRIMARY KEY (`id_parents`, `idx_civilite`, `idx_emploi`, `civilite_id_civilite`, `emploi_id_emploi`),
            ADD INDEX `fk_parents_civilite1_idx` (`civilite_id_civilite` ASC) VISIBLE,
            ADD INDEX `fk_parents_emploi1_idx` (`emploi_id_emploi` ASC) VISIBLE,
            DROP INDEX `fk_parents_civilite1_idx` ,
            DROP INDEX `fk_parents_emploi1_idx` 

    Je précise que cette table était déjà existante et que je souhaite ajouter un fk.

    Merci pour vortre aide.

    -
    Edité par MiaoLee 30 septembre 2021 à 9:01:21

    • Partager sur Facebook
    • Partager sur Twitter
      30 septembre 2021 à 9:06:08

      Bonjour,

      Ligne 8 et 9 tu fais référence à une colonne nommée civilite_id_civilite et MySQL t'indique que cette colonne n'existe pas  dans la table parents ...

      Vérifie cela.

      Peux-tu poster le résultat de la requête DESC parents; ?

      Attention aussi, une clé primaire composée sur 5 colonnes ne me paraît pas pertinent dans cet exemple ... Je ne connais pas ton contexte, mais il me semble que seul id_parent devrait être clé primaire non ?

      -
      Edité par Benzouye 30 septembre 2021 à 9:07:24

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        30 septembre 2021 à 10:29:52

        Bonjour Benzouye,

        Comme demandé voici le résultas de la requète.

        Field,Type,Null,Key,Default,Extra
        id_parents,"int unsigned",NO,PRI,NULL,auto_increment
        idx_civilite,int,NO,PRI,NULL,
        parents_nom,varchar(45),NO,,NULL,
        parents_prenom,varchar(45),NO,,NULL,
        parents_adresse,varchar(250),NO,,NULL,
        parents_cp,varchar(15),NO,,NULL,
        parents_ville,varchar(45),NO,,NULL,
        parents_mail,varchar(150),NO,,NULL,
        parents_phone,varchar(15),NO,,NULL,
        parents_dte_naiss,datetime,NO,,NULL,
        parents_mdp,varchar(250),NO,,NULL,
        idx_emploi,int,NO,PRI,NULL,
        parents_tuteur,tinyint,YES,,NULL,
        parents_divorce,tinyint,YES,,NULL,
        parents_nbre_enfants,int,NO,,NULL,
        

        Et concernant la clé primaire je suis entierement daccord avec toi et je ne comprend pas pourquoi mysql-workbench met toute ces clé primaire, je vais regarder ca.

        Merci pour l'info.

        • Partager sur Facebook
        • Partager sur Twitter
          30 septembre 2021 à 12:16:24

          On voit bien qu'il n'y a pas de colonne nommée civilite_id_civilite ...

          Je pense que c'est ton modèle qui ne va pas ... Peux-tu poster une copie d'écran de ce que tu as "dessiné" ?

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            30 septembre 2021 à 13:34:18

            Je ne connais pas MySQL WorkBench, mais visuellement il y a quelque chose qui ne vas pas ... Il y a doublon entre idx_civilite et civilite_id_civilite, et entre idx_emploi et emploi_id_emploi ...

            Je commencerai par supprimer toute la base MySQL pour repartir au propre, puis supprimer les deux dernières colonnes de la table parents pour ne laisser que les deux idx_* qui doivent être passé en clé étrangère (pas la clé jaune mais la rouge).

            Puis relancer la création de la base ...

            • Partager sur Facebook
            • Partager sur Twitter
            Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
              30 septembre 2021 à 15:34:37

              J' ai suivi tes conseils et plus d'erreur.

              MERCI BEAUCOUP !!

              • Partager sur Facebook
              • Partager sur Twitter

              [Erreur 1072][MYSQL] Key column doesn't exist

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown