IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Integrity constraint violation: 1452 Cannot add or update a child row


Sujet :

Langage SQL

  1. #1
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    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:
    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.
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    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 Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  3. #3
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $projet->ajouterProjet(***, $idEntreprise, ***);
    Et la méthode en elle-même:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

Discussions similaires

  1. Réponses: 13
    Dernier message: 27/08/2015, 17h46
  2. #1452-Cannot add or update a child row[MySQL]
    Par af.zakaria dans le forum Requêtes
    Réponses: 3
    Dernier message: 15/04/2012, 17h28
  3. Réponses: 3
    Dernier message: 13/09/2011, 11h02
  4. Réponses: 9
    Dernier message: 24/04/2011, 17h03
  5. Réponses: 0
    Dernier message: 12/12/2007, 21h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo