Urgent : double clé étrangére

othman -  
Posotaz Messages postés 505 Statut Membre -
Bonjour on a trois tables :
PILOTE(NUMPIL,NOMPIL,ADR,SAL)
AVION(NUMAV,NOMAV,CAPACITE,LOC)
VOL(NUMAV,NUMPIL,NUMAV,VILLE_DEP,VILLE_ARR,H_DEP,H_ARR)
j'ai réussi a créer les deux tables PILOTE ET AVION les voila :

table AVION:
create table Avion(
NUMAV integer constraint pk_Avion primary key ,
NOMAV varchar (30),
CAPACITE int ,
LOC varchar(50))

table pilote :
create table PILOTE (
NUMPIL integer constraint pk_PILOTE primary key ,
NOMPIL varchar (50),
ADR varchar(60),
SAL numeric );

dans la table vol il ya deux clés étrangéres et une clé primaire le probléme s'est qu'il s'affiche spécification de contrainte non autorisé ici

CREATE table VOL(
NUMVOL integer constraint pk_VOL primary key ,
NUMPIL integer constraint fk_PILOTE foreign key references PILOTE(NUMPIL),
NUMAV integer constraint fk_ AVION foreign key references AVION(NUMAV),
VILLE_DEP VARCHAR(50),
VILLE_ARR VARCHAR(50),
H_DEP int,
H_ARR int);

AIDEZ MOI svp

4 réponses

Polux31 Messages postés 7219 Statut Membre 1 204
 
Bonjour,

Pour ce genre d'exercice, demande plutôt à ton prof de t'expliquer. On n'est pas là pour les faire à ta place.

;o)
0
Posotaz Messages postés 505 Statut Membre 225
 
Salut,

Je pense que c'est un petit problème de syntaxe.
Je ne sais pas si tu as fait la faute en transcrivant le script sur le forum mais tu as mis un espace entre fk_ et AVION... c'est peut-être ça, j'ai vu ça par hasard. Si le problème ne vient pas de là, essaie plutôt sous cette forme :

CREATE table VOL(
NUMVOL integer constraint pk_VOL primary key ,
NUMPIL integer,
NUMAV integer,
VILLE_DEP VARCHAR(50),
VILLE_ARR VARCHAR(50),
H_DEP int,
H_ARR int,
foreign key(NUMPIL) references PILOTE(NUMPIL),
); 

alter table VOL
  add constraint fk_PILOTE foreign key(NUMPIL) references PILOTE(NUMPIL),
  add constraint fk_AVION foreign key(NUMAV) references AVION(NUMAV);
0
othman
 
ca marche pas
0
Posotaz Messages postés 505 Statut Membre 225
 
Mais encore ? Qu'as-tu essayé exactement, à quel moment ça coince, quel message d'erreur il met, quel SGDB tu utilises,...

Si ça coince au niveau de l'ALTER TABLE, c'est peut-être qu'il faut le faire en deux fois (pour le coup j'ai un doute sur la syntaxe avec la virgule...). Bref, voilà un peu de documentation https://dev.mysql.com/doc/refman/8.0/en/innodb-foreign-key-constraints.html pour t'inspirer d'une syntaxe correcte.
0