Salut à tous
je viens de créer ma 1 ère base de données mySQL sous phpMyAdmin la question que je me pose c'est comment peut-on exprimer une clé étrangère dans une table dans la clé primaire est un couple de 2 clés étrangère.
merci pour votre aide.
Salut à tous
je viens de créer ma 1 ère base de données mySQL sous phpMyAdmin la question que je me pose c'est comment peut-on exprimer une clé étrangère dans une table dans la clé primaire est un couple de 2 clés étrangère.
merci pour votre aide.
Ta demande ne serait-elle pas :
comment peut-on exprimer une clé étrangère SUR une table dont la clé primaire est formée de 2 colonnes
Car sinon, l'expression d'une FK dans une table ne dépend pas du format de la PK de cette même table (1, 2 ou 10 colonnes dans la PK n'impactent pas le format d'une FK dans la même table)
L'autre possibilité se rapporterait à une FK positionnée sur une PFK composite ?
A toi de préciser ton contexte...
Cela ne pose en principe pas de pb de créer une pk composée de cles étrangères.
Voici un petit exemple pour créer une pk composée et son index.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ALTER TABLE maTable ADD PRIMARY KEY (champ1, champ2); CREATE INDEX pk_maTable ON maTable (champ1, champ2);
la question est simplement comment dire à une table que le champs col1 est une clé etrangère.
je pose la question par ce que je vois rien du genre foreign key dans phpMyAdmin.
merci
Pour pouvoir avoir une clé étrangère il faut que ta table soit de type InnoDB (et non MyISAM type par défaut).
Après, un classique :
doit marcher.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ALTER TABLE table1 ADD FOREIGN KEY (col1) REFRENCES table2 (col2);
ps: si soit + clair dans tes demandes
ma question est bete mais je la pose comme meme vu que c'est ma 1 ere bd SQL.
le problème j'ai deja créer toutes les tables par defaut(de type myISAM ) est -il possible de changer juste le type de ces tables vers innoBD sans devoir tout refaire?
merci d'avance
Partager