Probleme sur une insertion

zyriuse Messages postés 31 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 mars 2011 - 26 déc. 2007 à 14:40
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 26 déc. 2007 à 17:17
bonjour
voila j essaye de faire un insert dans ma table fonction. se que je comprend pas cest pourquoi j ai une erreur est pourquoi il me parle de idemploye est idfonction vue qu il sont en auto increment.
insert into fonction
(type_fonction)
values ('cadre'),
('ingenieur');

est j ai une erreur

Cannot add or update a child row: a foreign key
constraint fails (`infodis/fonction`, CONSTRAINT `fk_employe_fonction` FOREIGN
KEY (`idfonction`) REFERENCES `employe` (`idemploye`))

voici le descriptif des tables
FONCTION

create table groupe (
idfonction int unsigned primary key
auto_increment,
type_fonction varchar(30) not null
) engine=innodb;

EMPLOYE

create table employe (
idemploye int unsigned primary key auto_increment,
nom varchar(20) not null,
identreprise int unsigned not null,
key (identreprise),
idgroupe int unsigned not null,
key (idgroupe),
idcontrat int unsigned not null,
key (idcontrat),
idfonction int unsigned not null,
key (idfonction),
constraint fk_entreprise_employe foreign key
(identreprise) references entreprise (identreprise),
constraint fk_groupe_employe foreign key (idgroupe)
references groupe (idgroupe),
constraint fk_contrat_employe foreign key (idcontrat)
references contrat (idcontrat),
constraint fk_fonction_employe foreign key (idfonction)
references fonction (idfonction)
) engine=innodb;

 

encore merci a vous tous pour votre aide

 

5 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
26 déc. 2007 à 15:18
Salut,

A voir une contrainte de clé étrangère nommée fk_employe_fonction et liant la colonne idfonction de la table fonction à la colonne idemploye de la table employe existe sur la table fonction.
D'après sa définition je suppose que c'est une erreur de définition de contrainte (du moins, dans le cas contraire la logique m'échappe complètement), si c'est bien le cas il faudrait peut être l'enlever...

/*
coq
MVP Visual C#
CoqBlog
*/
0
zyriuse Messages postés 31 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 mars 2011
26 déc. 2007 à 16:39
desoler mais j ai pas compris la
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
26 déc. 2007 à 16:47
Le message d'erreur dit :
Cannot add or update a child row: a foreign key constraint fails (`infodis/fonction`, CONSTRAINT `fk_employe_fonction` FOREIGN KEY (`idfonction`) REFERENCES `employe` (`idemploye`))

Cette contrainte fk_employe_fonction implique que la valeur insérée dans la colonne fonction.idfonction (en autoincrément donc) existe dans la colonne employe.idemploye.

/*
coq
MVP Visual C#
CoqBlog
*/
0
zyriuse Messages postés 31 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 mars 2011
26 déc. 2007 à 16:57
ok d accord mais alors comment je peux faire  pour arriver a executer mais insert ??
0

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

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
26 déc. 2007 à 17:17
Si cette contrainte est réellement invalide comme je le pense, supprime la (logiquement ALTER TABLE ... DROP CONSTRAINT, vérifier dans la doc de MySQL).

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous