salut:=)
Comment je peu crée une clé étrangère dans une table sous mysql,
Avec un script SQL foreigne Key?
Pouvez vous SVP me donner un exemple (deux table relier avec une clé étrangère
Version imprimable
salut:=)
Comment je peu crée une clé étrangère dans une table sous mysql,
Avec un script SQL foreigne Key?
Pouvez vous SVP me donner un exemple (deux table relier avec une clé étrangère
Etudiant (Code_etudiant, nom_etudiant, Code_Lycee#]
Lycee (Code_Lycee, nom_Lycee)
tu fais
Code:
1
2 Alter table etudiant add constraint FK_CodeLycee FOREIGN KEY (Code_Lycee) REFERENCES Lycee(Code_Lycee)
merci :=)
Attention, par défaut MySQL ne prend pas les clés étrangères en compte ! Il faut remplir deux conditions :
1. Les tables concernées doivent utiliser le moteur InnoDB,
2. La colonne identifiant la table "maîtresse" doit être indexée.
Toute les version de MySQL ou bien seulement les anciennes.Citation:
Envoyé par Vladislav IV
La table maîtresse, tu veux dire la table « étudiant « ? .
Et quel index ?sur le code étudiant ? Et si oui je vais donc écrire
Code :
CREATE INDEX IndexName ON etudiant (Code_Etuiant) ;
Et quel sont les moteurs utiliser mysql appart InnoDB ?
merci Vladislav IV :=)
Toutes les versions, même la dernière.
Non, la table Lycée (c'est à elle que Etudiant fait référence). Et l'index doit porter sur l'identifiant, donc Lycee.Code_Lycee.Citation:
Envoyé par amazircool
J'ai un collègue en stage qui s'est bien pris la tête pour découvrir ça, mais je ne l'ai personnellement pas encore utilisé.
Il y en deux principaux : MyIsam, et InnoDB (qui peut gérer les clés étrangères). Mais il y en a d'autres, plus exotiques.Citation:
Envoyé par amazircool
l'index je croix sur Etudiant.Code_Lycee car c'est un clé étrangère
Donc sont des moteurs d’exécution comme le "jet" de access ? !=)Citation:
Envoyé par Vladislav IV
D'après le manuel, oui. Sur Etudiant.Code_Lycee. Mais il faut créer l'index avant de définir la clé étrangère !
Je crois que c'est ça, oui. Par exemple, il y a un moteur qui permet à une table de charger son contenu depuis une autre table, dans une autre base de données MySQL. Un autre moteur accepte les insertions, et les redirige ailleurs (ou quelque chose du style), etc. Mais c'est des moteurs assez spécifiques, pour la plupart des cas ils sont inutiles.Citation:
Envoyé par amazircool
Et chaque table peut avoir un moteur différent, cela ne s'applique pas à l'ensemble de la base.