Problème clé étrangère

Résolu
Will -  
 Will -
Bonjour,
j'ai un petit souci avec ma clé étrangère

Je suis sous PHPMyAdmin avec WAMP

Je possède 3 tables, demandeur, utilisateur et service

Dans demandeur et utilisateur, j'ai en clé étrangère le code_service

Sous demandeur, la clé étrangère fonctionne parfaitement

Mais sous utilisateur, lorsque je veux relier ma clé étrangère à la clé primaire de service, voila l'erreur :

Erreur

Requête SQL:

ALTER TABLE 'utilisateur' ADD FOREIGN KEY ( 'fkUT_codeSE' ) REFERENCES 'tdb'.'service' (
'code_se'
) ON DELETE CASCADE ON UPDATE CASCADE ;

MySQL a répondu: Documentation
#1452 - Cannot add or update a child row: a foreign key constraint fails ('tdb'.<result 2 when explaining filename '#sql-1c4_74'>, CONSTRAINT '#sql-1c4_74_ibfk_1' FOREIGN KEY ('fkUT_codeSE') REFERENCES 'service' ('code_se') ON DELETE CASCADE ON UPDATE CASCADE)


J'aurais besoin d'un petit coup de main si possible, merci de votre attention !!

Bonne journée

A voir également:

4 réponses

Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   84
 
Salut,
Est-ce que 'code_se' est clé primaire dans la table service ?
0
Will
 
effectivement
0
Will
 
Les 3 tables :
Service : code_se clé primaire, lib_se,comm_se ;
Demandeur : code_de clé primaire, nom_de, fkDE_codeSE clé étrangère de sercie(code_se) ;
Utilisateur : code_ut, nom_ut, type_ut, fkUT_codeSE clé étrangère de sercie(code_se) ;


Autrement dit, les 2 tables utilisateurs et demandeurs sont un copier/coller !
0
Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   84
 
Quel est le type de code_se dans ta table Service et fkUT_codeSE dans ta table utilisateur ? (entier, chaine de caractère ...)
0
Will
 
fkUT_codeSE int(11)
fkDE_codeSE int(11)
code_se int(11)
0
Will
 
Merci pour ton aide en tout cas :)
0
Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   84
 
Y'a pas de quoi :)
Tes tables sont-elles remplies ?
Essayes de nous donner un jeu d'essai (j'avais pas sorti ce mot depuis l'école ...)
0
Will
 
CREATE TABLE IF NOT EXISTS 'demandeur' (
  'code_de' int(40) NOT NULL AUTO_INCREMENT,
  'nom_de' varchar(40) NOT NULL,
  'fkDE_codeSE' int(11) NOT NULL,
  PRIMARY KEY ('code_de'),
  KEY 'fkDE_codeSE' ('fkDE_codeSE')
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Structure de la table 'service'
--

CREATE TABLE IF NOT EXISTS 'service' (
  'code_se' int(11) NOT NULL AUTO_INCREMENT,
  'lib_se' text NOT NULL,
  'des_se' text NOT NULL,
  'dateDeb_se' date NOT NULL,
  'dateFin_se' date NOT NULL,
  PRIMARY KEY ('code_se')
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=32 ;

--
-- Contenu de la table 'service'
--

INSERT INTO 'service' ('code_se', 'lib_se', 'des_se', 'dateDeb_se', 'dateFin_se') VALUES
(1, 'DIRCAB', 'Cabinet du recteur', '0000-00-00', '0000-00-00'),
(2, 'SG', 'Secrétaire général', '0000-00-00', '0000-00-00'),
(3, 'DIRH', 'Dispositif académique des Ressources humaines', '0000-00-00', '0000-00-00'),
(4, 'ISST', 'Inspecteur Santé et Sécurité au Travail', '0000-00-00', '0000-00-00'),
(5, 'SACE', 'Service d''Aide et de Conseil aux Eple', '0000-00-00', '0000-00-00'),
(6, 'SJC', 'Service Juridique et Contentieux', '0000-00-00', '0000-00-00'),
(7, 'SPS', 'Service Prospective et Statistique', '0000-00-00', '0000-00-00'),
(8, 'DOS', 'Division Organisation Scolaire', '0000-00-00', '0000-00-00'),
(9, 'DIPE', 'Division Personnels Enseignants', '0000-00-00', '0000-00-00'),
(10, 'PAID', 'Division Personnels Administratif, d''Inspection et de Direction', '0000-00-00', '0000-00-00'),
(11, 'DISUPP', 'Division de l''Enseignement Supérieur et des Personnels du Privé', '0000-00-00', '0000-00-00'),
(12, 'DEC', 'Division Examens et concours', '0000-00-00', '0000-00-00'),
(13, 'DIFOP', 'Division Formation des Personnels', '0000-00-00', '0000-00-00'),
(14, 'DSI', 'Division Systèmes Information', '0000-00-00', '0000-00-00'),
(15, 'DMG', 'Division Moyens Généraux', '0000-00-00', '0000-00-00'),
(16, 'DBF', 'Division Budgétaire et Finance', '0000-00-00', '0000-00-00'),
(17, 'DAET', 'Délégué Académique aux Enseignements Technologiques', '0000-00-00', '0000-00-00'),
(18, 'CSAIO', 'Chef Service Académique d''Information et d''Orientation', '0000-00-00', '0000-00-00'),
(19, 'DAAC', 'Délégué Académique à l''Action culturelle', '0000-00-00', '0000-00-00'),
(20, 'DAREIC', 'Délégué Académique aux Relations Européennes et Internationales et à la Coopération', '0000-00-00', '0000-00-00'),
(21, 'DAFOP', 'Délégué Académique à la Formation des Personnels', '0000-00-00', '0000-00-00'),
(22, 'CAMD', 'Centre Académique Michel Delay', '0000-00-00', '0000-00-00'),
(23, 'IRE', 'Ingénieur Régional de l''Equipement', '0000-00-00', '0000-00-00'),
(24, 'CARDIE', 'Coordination Académique Recherche-Développement Innovation et Expérimentation', '0000-00-00', '0000-00-00'),
(25, 'CTICE', 'Conseiller pour les Tachnologies de l''Information et de la Communication dans l''Enseignement', '0000-00-00', '0000-00-00'),
(26, 'GIPAL', 'Groupement d''Intérêt Public de l''Académie de Lyon', '0000-00-00', '0000-00-00'),
(27, 'DAFCO', 'Délégué Académique à la Formation Continue', '0000-00-00', '0000-00-00'),
(28, 'SANTE', 'Médecins, Infirmières, Assistantes Sociales', '0000-00-00', '0000-00-00'),
(29, 'IEN ASH', 'Inspecteurs de l''Education Nationale Adaptation colaire et Scolarisation des élèves Handicapés', '0000-00-00', '0000-00-00'),
(30, 'IEN', 'Inspecteurs de l''Education Nationale', '0000-00-00', '0000-00-00'),
(31, 'IPR', 'Inspecteurs Pédagogiques Régionaux', '0000-00-00', '0000-00-00');

-- --------------------------------------------------------

--
-- Structure de la table 'utilisateur'
--

CREATE TABLE IF NOT EXISTS 'utilisateur' (
  'code_ut' int(40) NOT NULL AUTO_INCREMENT,
  'nom_ut' varchar(40) NOT NULL,
  'type_ut' text NOT NULL,
  'fkUT_codeSE' int(11) NOT NULL,
  PRIMARY KEY ('code_ut'),
  KEY 'fkUT_codeSE' ('fkUT_codeSE')
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;

--
-- Contenu de la table 'utilisateur'
--

INSERT INTO 'utilisateur' ('code_ut', 'nom_ut', 'type_ut', 'fkUT_codeSE') VALUES
(1, 'Directeur d''écoles', '', 0),
(2, 'Enseignants 1er degré', '', 0),
(3, 'Enseignants 2nd degré', '', 0),
(4, 'Personnels de direction des établissemen', '', 0),
(5, 'Agents comptable, gestionnaires et perso', '', 0),
(6, 'Personnels administratifs et vie scolair', '', 0),
(7, 'Personnels de santé/social', '', 0),
(8, 'Personnels des services informatiques', '', 0),
(9, 'Encadrement intermédiaire', '', 0),
(10, 'Direction des services académiques et/ou', '', 0),
(11, 'Corps d''inspection 1er degré', '', 0),
(12, 'Corps d''inspection 2nd degré', '', 0),
(13, 'Personnels d''orientation', '', 0),
(14, 'Tous les personnels', '', 0),
(15, 'Personnels administratifs de l''enseignem', '', 0),
(16, 'Etudiants', '', 0),
(17, 'Elèves', '', 0),
(18, 'Autres partenaires', '', 0),
(19, 'Collectivités territoriales', '', 0),
(20, 'Parents', '', 0);

--
-- Contraintes pour les tables exportées
--

--
-- Contraintes pour la table 'demandeur'
--
ALTER TABLE 'demandeur'
  ADD CONSTRAINT 'demandeur_ibfk_1' FOREIGN KEY ('fkDE_codeSE') REFERENCES 'service' ('code_se');
0
Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   84
 
Et la table demandeur ?
0
Will
 
aucun tuples, elle n'est encore pas renseignée
0
Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   84
 
Ah bhé euh rempli la pour essayer, peut être que ca vient de la ;)
0
Will
 
Cela serait illogique non, vu que c'est justement la table dans laquelle la clé étrangère fonctionne ...

Je vais essayer d'y insérer un tuple, voir si c'est possible
0
Will
 
je viens d'y insérer 2 tuples, avec leur clé étrangère ( code_se ) renseignée, et tout a marché sur Demandeur
0