Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/11/2011, 18h29   #1
Nouveau Membre du Club
 
Inscription : février 2009
Messages : 261
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 261
Points : 30
Points : 30
Par défaut Integrity constraint violation: 1452 Cannot add or update a child row

Bonjour, lorsque j'exécute une requête d'insertion dans ma BDD, j'obtiens ce message d'erreur:
Citation:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`Site`.`Projet`, CONSTRAINT `Projet_ibfk_2` FOREIGN KEY (`idEntreprise`) REFERENCES `Entreprise` (`id`))
Je comprends que je ne peux pas ajouter ou mettre à jour un row à cause d'une contrainte liée à une clé étrangère.

Voici un schéma de ma BDD:


Dans mon script, je commence par ajouter dans ma table projet (là où ca coince) mais je ne comprends pas pourquoi, j'ai vérifié les valeurs que j'utilise et elles existent belles et bien mais ca ne passe pas et la ligne que j'ajoute n'existe puisque que ma table projet est vide donc je ne comprends pas pourquoi, si vous avez une idée, je vous remercie d'avance.
absot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2011, 19h10   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Le message dit que la clé étrangère non satisfaite est l'identifiant de l'entreprise.

Sans la requête, on ne peut pas savoir s'il y a vraiment une valeur donnée pour cette colonne et à vous de vérifier que l'identifiant inséré existe bien dans la table entreprise.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2011, 19h25   #3
Nouveau Membre du Club
 
Inscription : février 2009
Messages : 261
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 261
Points : 30
Points : 30
C'est un projet avec Zend Framework.

Je suis sûr que je donne de bonnes valeurs puisque j'ai vérifié en faisant un Zend_Debug::dump() de la valeur d'idEntreprise et ca m'affiche quelque chose.

Voici la méthode que j'appelle dans mon controlleur:
Code :
1
2
 
$projet->ajouterProjet(***, $idEntreprise, ***);
Et la méthode en elle-même:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
public FUNCTION ajouterProjet(***, $idEntreprise, ***)
{
   $data = array(
	***,
	'idEntreprise' => $idEntreprise,
	***
);
 
$adapter = new Application_Model_DbTable_Projet();
$adapter->INSERT($data);
}
Si je donne directement des valeurs par défaut à ma méthode, j'obtiens toujours la même erreur.
absot est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h49.


 
 
 
 
Partenaires

Hébergement Web