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:
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 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) );
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 ...
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' );
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 .
Partager