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

 MySQL Discussion :

[Cannot add or update a child row : a foreign key constraint fails


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Par défaut [Cannot add or update a child row : a foreign key constraint fails
    Bonjour ,
    Débutant dans le SQL , je rencontre quelques petit soucis.

    J'essaye de mettre en place en base de donnée concernant les softs qui sont installé au sein d'une entreprise, en ce qui concerne la création de la BDD aucun soucis, c'est lors de l'injection des données que cela pose probleme , en effet j'utilise un script pour crée mes tables avec les contraintes etc ... , et un autre pour injecter les données le soucis qui se pause c'est que j'ai le message suivant qui apparait : Cannot add or update a child row : a foreign key constraint fails ...

    j'utilise mysql server 5.6

    voici le script qui crée les tables:

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    use bddsfrj;
     
     
    create table SERVICE(
    id_service numeric (8),
    lib_service varchar (50),
    PRIMARY KEY (id_service)
     
     );
    create table INSTALLER(
    id_log numeric(8),
    num_poste numeric(8),
    PRIMARY KEY (id_log,num_poste)
     
    );
    create table POSTE(
    num_poste numeric(8),
    id_service numeric(8),
    PRIMARY KEY (num_poste),
    FOREIGN KEY (id_service) references service (id_service)
    );
    create table PLATE_FORME(
    id_plate numeric(8),
    lib_plate varchar(20),
    PRIMARY KEY (id_plate)
     
    );
    create table EDITEUR(
    id_edit numeric(8),
    nom_edit varchar(20),
    site_edit varchar(20),
    PRIMARY KEY(id_edit)
     
    );
     
    create table LOGICIEL(
    id_log numeric(8),
    nom_log varchar(20),
    date_achat date,
    id_edit numeric(8),
    id_plate numeric(8),
    nb_lic_tot numeric(20),
    nb_lic_use numeric(20),
    PRIMARY KEY (id_log),
    FOREIGN KEY (id_plate) references plate_forme (id_plate),
    FOREIGN KEY (id_edit) references editeur (id_edit)
    );
    et voici la script qui injecte les données :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    use bddsfrj;
     
     
     
    insert into SERVICE (id_service,lib_service) values
    ('14789632','comptabilite'),
    ('25874136','datacom'),
    ('19852364','dev'),
    ('12334456','resource_humaine'),
    ('12987477','coeur_reseau'),
    ('45437134','neurone'),
    ('12476463','trader'),
    ('12359876','toip');
     
     
    insert into INSTALLER (id_log,num_poste) values
    ('123','18778963'),
    ('223','12369874'),
    ('323','19514789'),
    ('111','11359871'),
    ('222','11359871'),
    ('134','22345978'),
    ('167','11359871'),
    ('156','11111112');
     
     
     
    insert into POSTE (num_poste,id_service) values
    ('18778963','14789632'),
    ('12369874','25874136'),
    ('09514789','19852364'),
    ('11195678','12334456'),
    ('22345978','12987477'),
    ('44457651','45437134'),
    ('12476463','12476463'),
    ('11359871','12359876');
     
     
     
    insert into PLATE_FORME (id_plate,lib_plate) values 
    ('25887897','windows'),
    ('25888899','linux'),
     
     
     
    insert into EDITEUR (id_edit,nom_edit,site_edit) values
    ('11111111' , 'mind'          , 'www.mind.com'),
    ('22222222' , 'cisco'         , 'www.cisco.com'),
    ('25788897' , 'microsoft'     , 'www.microsoft.com'),
    ('23498711' , 'sql_enterprise', 'www.sql-enterprise'),
    ('33333333' , 'nagios'        , 'www.nagios.com'),
    ('44444444' ,'dnevnik'        , 'www.dnevnik.hr');
     
     
    insert into LOGICIEL (id_log, nom_log, date_achat,id_edit,id_plate,nb_lic_tot,nb_lic_use) values
    ('123' , 'phonexone'        , '2010-12-12' , '11111111' , '25887897' , '1'     , '1'   ),
    ('223' , 'Mysql_enterprise' , '2005-12-31' , '23498711' , '25888899' , '5'     , '3'   ),
    ('323' , 'Excel'            , '2000-01-01' , '25788897' , '25887897' , '10000' , '5000'),
    ('222' , 'Nice_CTI'         , '2010-10-10' , '11111111' , '25787897' , '1'     , '1'   ),
    ('111' , 'Unity'            , '2010-10-10' , '11111111' , '25787897' , '1'     , '1'   ),
    ('134' , 'Nagios'           , '2002-12-01' , '33333333' , '25787897' , '5'     , '2'   ),
    ('167' , 'Cisco'            , '2010-10-10' , '22222222' , '25787897' , '1'     , '1'   ),
    ('156' , 'Traderplus'       , '2000-01-01' , '44444444' , '25787897' , '1000'  , '800' );
    Alors dans un premier temps je me dis que j'ai peut être mal renseigné mes tables mais apparament ce n'est pas le cas car lorsque je fais un show create table logiciel il m'indique bien la contrainte avec la table plate_forme ...


    Si quelqu'un pourrait éclairer ma lanterne ... merci d'avance .
    edit : j'ai oublié de préciser , mon problème intervient au niveau de la table logiciel, en effet le apparament il y aurait un problème au niveau de la clé étrangère id_plate , or pourtant je la référence bien dans mon script .

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Bonjour,


    Quand un SGBD gueule sur un problème comme ça c'est que dans 99% des cas vous êtes en tord (on va laisser le % qui reste pour un bug).


    Et ici, il n'y a pas de bug.

    Problème dans votre jeu de donné... un 8 c'est transformé en 7

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Par défaut
    Merci camarade

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 27/08/2015, 17h46
  2. Réponses: 2
    Dernier message: 03/04/2012, 20h00
  3. Cannot add or update a child row: a foreign key constraint fails
    Par dubitoph dans le forum Administration
    Réponses: 4
    Dernier message: 25/01/2012, 08h29
  4. Réponses: 3
    Dernier message: 28/11/2011, 17h26
  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