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

Requêtes MySQL Discussion :

A foreign key constraint fails


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 3
    Par défaut A foreign key constraint fails
    Bonjour,

    j'ai un petit souci sur ma base de donnée. Je cherche à crée une table qui va ajouter des éléments lors de la création de la commnande.
    Mon code dans le controller est comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $unknow = NULL;
    $end_date = date('d/m/Y', strtotime("+1 month"));
    $user = checkConnected($bdd);
    Commande::create($bdd, $new_full_modele_devis_path, $unknow, $end_date, 0, $user->getId(), $unknow, $entreprise->getId());

    J'ai ici ma table commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    create table Commande
    (
    	commande_id int not null,
    	lien_devis varchar(255) null,
    	lien_bdc varchar(255) null,
    	end_devis datetime null,
    	bdc_status int null,
    	devis_created_by_user_id int null,
    	bdc_managed_by_user_id int null,
    	entreprise_id int null,
    	constraint Commande_pk
    		primary key (commande_id),
    	constraint bdc_managed_by___fk
    		foreign key (bdc_managed_by_user_id) references utilisateur (utilisateur_id),
    	constraint devis_created_by___fk
    		foreign key (devis_created_by_user_id) references utilisateur (utilisateur_id),
    	constraint entreprise___fk
    		foreign key (entreprise_id) references entreprise (entreprise_id)
    );
    et elle va récupérer l'Id "entreprise" de l'utlisateur qui crée la commande et l'id user de celui qui crée la commande (pareil pour bdc_managed_by_user_id)..

    Lorsque j’exécute mon code j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Cannot add or update a child row: a foreign key constraint fails (`bdd_name`.`Commande`, CONSTRAINT `bdc_managed_by___fk` FOREIGN KEY (`bdc_managed_by_user_id`) REFERENCES `utilisateur` (`utilisateur_id`))
                                            VALUES (:lien_devis, :lien_bdc, :end_devis, :bdc_status, :devis_created_by_user_id, :bdc_managed_by_user_id, :entreprise_id)
    Je ne comprends pas pourquoi j'ai cette erreur et un point de vue extérieur m'aiderait bien en tant que jeune débutant...

    Merci d'avance.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 955
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 955
    Par défaut
    Il semblerait que vous utilisiez $unknow pour alimenter bdc_managed_by_user_id.
    Vérifiez la valeur de la variable $unknow, elle doit correspondre à une valeur existante de UTILISATEUR.UTILISATEUR_ID ou être NULL.

    PS, je ne pense pas que vous soyez sur Oracle, précisez votre SGBD et sa version.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 3
    Par défaut
    Citation Envoyé par skuatamad Voir le message
    Il semblerait que vous utilisiez $unknow pour alimenter bdc_managed_by_user_id.
    Vérifiez la valeur de la variable $unknow, elle doit correspondre à une valeur existante de UTILISATEUR.UTILISATEUR_ID ou être NULL.

    PS, je ne pense pas que vous soyez sur Oracle, précisez votre SGBD et sa version.
    Bonjour en effet j'initialise unknow dans mon controller à NULL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $unknow = NULL;
    Commande::create($bdd, $new_full_modele_devis_path, $unknow, $end_date, 0, $user->getId(), $unknow, $entreprise->getId());
    Cependant je ne comprends vraiment pas d'où viens cette erreur.

    (je pense que je me suis trompe de forum je suis sous MySQL)

  4. #4
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    7 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 7 139
    Par défaut
    Salut devnoob33.

    Il y a plusieurs choses dont vous devez respecter lors de la création de vos tables :

    1) Vous devez créer les tables références (celles n'ayant pas de clefs étrangères) en premier.
    Puis ensuite, les tables ayant des clefs étrangères. Il est important de respecter cet ordre de création.

    2) quand vous utilisez une clef étrangère, vous devez mettre le même type que la colonne identifiant de la table qui sert de référence.

    3) avant d'insérer quoi que ce soit dans la table ayant des clefs étrangères, vous devez avoir un jeu d'essai déjà existant dans la table référence.

    @+

Discussions similaires

  1. Réponses: 13
    Dernier message: 27/08/2015, 18h46
  2. [PHP 5.3] [ADOdb] a foreign key constraint fails
    Par Neuromancien2 dans le forum Langage
    Réponses: 0
    Dernier message: 15/05/2011, 18h10
  3. Foreign key constraint fails
    Par psgman113 dans le forum JPA
    Réponses: 2
    Dernier message: 13/03/2009, 13h37
  4. Réponses: 0
    Dernier message: 12/12/2007, 22h10
  5. [clés étrangères] a foreign key constraint fails
    Par guidav dans le forum Débuter
    Réponses: 15
    Dernier message: 10/08/2006, 00h50

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