Partage
  • Partager sur Facebook
  • Partager sur Twitter

Message d'erreur au cours d'un tutoriel SQL

Tutoriel : "implémentez vos bases de données relationnelles avec SQL"

Sujet résolu
    12 avril 2021 à 16:39:24

    Bonjour à tous et à toutes,

    Je suis actuellement à ce chapitre du tutoriel en question :

    https://openclassrooms.com/fr/courses/6971126-implementez-vos-bases-de-donnees-relationnelles-avec-sql/7142296-ajoutez-une-relation-un-a-plusieurs

    Jusqu'à présent tout fonctionne bien, mais en suivant scrupuleusement la méthodologie (jusqu'à tout recommencer à zéro depuis la création de la BDD foodly, puis son chargement depuis la github de l'auteur -dossier partie 2-), j'obtiens le message suivant au moment où je veux créer la relation à l'aide de la clé étrangère, j'utilise donc l'instruction suivante :

    ALTER TABLE aliment

    ADD FOREIGN KEY (famille_id) REFERENCES famille (id)

    ON DELETE CASCADE;

    Et j'obtiens le message d'erreur suivant :

    ERROR: 1452: Cannot add or update a child row: a foreign key constraint fails (`foodly`.`#sql-3b88_22`, CONSTRAINT `aliment_ibfk_1` FOREIGN KEY (`famille_id`) REFERENCES `famille` (`id`) ON DELETE CASCADE)

    J'ai pourtant tout vérifié (il me semble) et ne comprends pas d'où peut venir l'erreur.

    Étant débutant sur le sujet, j'ai du mal à comprendre les explications trouvées sur les moteurs de recherche, apparemment il peut y avoir de nombreuses causes à ce message.

    Je voudrais savoir si quelqu'un rencontre le même problème, peut être que la solution est très simple, finalement.

    voici une capture d'écran pour aider à toute fin utile à la compréhension (je pense que ça peut aider en montrant les caractéristiques des tables).

    J'ai vu qu'il existait un vieux sujet sur la forum portant sur le même message d'erreur (dans un autre contexte) mais cela ne m'a pas beaucoup aidé.

    Merci d'avance !

    • Partager sur Facebook
    • Partager sur Twitter
      12 avril 2021 à 17:56:26

      Bonjour, 

      Je pense que l'erreur c'est que dans la table aliment famille_id = 0 alors que dans la Table famille il n'y a pas d'id = 0 

      • Partager sur Facebook
      • Partager sur Twitter

      Site Internet : https://devst.go.yj.fr

        12 avril 2021 à 18:07:46

        Bon, ben j'ai fini par trouver la réponse tout seul !

        En fait il faut que la valeur famille_id soit à NULL, et pas à 0.

        Il y avait une sur la page du tutoriel une instruction pour créer le champ famille_int servant de clé étrangère, qui disait :

        ALTER TABLE aliment

        ADD famille_id INT NOT NULL;

        or en ne spécifiant pas NOT NULL mais en laissant à NULL (par défaut), tout rentre ensuite dans l'ordre.

         

        -
        Edité par JérômeFRASSON 12 avril 2021 à 18:30:18

        • Partager sur Facebook
        • Partager sur Twitter

        Message d'erreur au cours d'un tutoriel SQL

        × 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