Attribut chef dans table personnel

hajerkerkena Messages postés 27 Date d'inscription mardi 6 décembre 2011 Statut Membre Dernière intervention 19 avril 2012 - 15 févr. 2012 à 10:32
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 - 21 févr. 2012 à 09:41
bonjour,
ma question semble facile mais j'arrive plus à résoudre ce problème.
j'ai une table personnel(matricule,nom, prenom,.....,chef) avec matricule est la clé primaire et chef est le numéro de matricule d'un autre personnel.
je pense que je dois faire une jointure entre la table elle même et chef sera une clé étrangère mais ça me génère une erreur.
quelle est la solution pour mon cas sachant que j'utilise mysql server.
merci pour votre aide et bonne journée.

5 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
15 févr. 2012 à 13:49
Salut,

quelle est ton erreur exactement ? Quand intervient-elle ?
MySQL ne bloque en rien ce genre d'archi.
0
hajerkerkena Messages postés 27 Date d'inscription mardi 6 décembre 2011 Statut Membre Dernière intervention 19 avril 2012
19 févr. 2012 à 18:33
Cannot add or update a child row: a foreign key constraint fails (`projet`.`personnel`, CONSTRAINT `FK_personnel_2` FOREIGN KEY (`matricule`) REFERENCES `personnel` (`matricule`) ON DELETE CASCADE ON UPDATE CASCADE)
ça ce qu'il afiche
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 févr. 2012 à 09:23
Re,

je te conseille ON DELETE SET NULL. A priori ton champ `chef` doit être nullable (le gars tout en haut de la hiérarchie n'ayant pas de chef). L'erreur devrait sauter. Le ON UPDATE CASCADE devrait quant à lui passer.
0
hajerkerkena Messages postés 27 Date d'inscription mardi 6 décembre 2011 Statut Membre Dernière intervention 19 avril 2012
20 févr. 2012 à 21:16
nn de nouveau ça n'a pas marché
Error while executing query.

ALTER TABLE `projet`.`personnel` ADD CONSTRAINT `FK_personnel_2` FOREIGN KEY `FK_personnel_2` (`matricule`)
REFERENCES `personnel` (`matricule`)
ON DELETE SET NULL
ON UPDATE CASCADE;


MySQL Error Number 1005
Can't create table 'projet.#sql-8fc_1f' (errno: 150)

c'est l'erreur qui la génère
j'arrive plus à résoudre ce problème de chef
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
21 févr. 2012 à 09:41
Re,

je viens de tester à l'instant ceci et ça passe parfaitement :

ALTER TABLE personnel ADD CONSTRAINT `FK_personnel_chef`
FOREIGN KEY (`chef`) REFERENCES `personnel` (`matricule`)
ON DELETE SET NULL ON UPDATE CASCADE;


Déjà, tu as mal écrit ton ALTER TABLE (peut-être un souci de retranscription sur le forum, passons). Autre possibilité, ton champ `chef` n'est pas nullable.

Bon SQL
0