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é.
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
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.
Site Internet : https://devst.go.yj.fr