Dans chaque table, j'ai uniquement mis les clés primaires. Pour la table Interv_tache, il s'agit de clés primaires d'origine étrangère (champs à la fois clé primaire et clé étrangère), de meme pour le champs numEtape de la table Tache (la tache est relative à l'étape).
Mon problème survient lorsque j'essaye de supprimer une tache. Avant de supprimer une tache, je supprime bien ses intervenants dans la table Interv_tache (la table fille), mais malgré cela, le même message d'erreur apparait a chaque fois :
#1451 - Cannot delete or update a parent row: a foreign key constraint fails (`db_test`.`intervient_tache`, CONSTRAINT `fk_interv_etape` FOREIGN KEY (`numEtape`) REFERENCES `tache` (`numEtape`))
Eh bien non justement car une étape peut être composée de plusieurs tâches. Et ce que je souhait faire c'est supprimer une tâche sans supprimer l'étape associée.
Dans la table Intervient_tache, c'est (numetape,numtache) qui référence le même (numetape,numtache) de la table tache. Tu as donc une clé étrangère en plusieurs partie.
Note que répéter numetape dans la table Intervient_tache ne serve à rien, puisque tu as déjà l'id de la tâche, et la tâche contient l'étape.
× 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.
Tutoriel complet MySQL !