Menu

Phpmyadmin : Ajouter une clé étrangère [Résolu/Fermé]

John568 - 6 mai 2015 à 02:23 - Dernière réponse :  pdotrainee
- 22 avril 2016 à 14:43
Bonjour,

J'essaye simplement d'ajouter une clé étrangère dans une table avec phpmyadmin. Mais c'est totalement impossible je ne vois pas comment faire, une interface incompréhensible, ça fait des heures que je cherche et j'en ai juste marre pour rester poli

Je n'ai que deux tables je veux juste prendre la clé primaire de ma table1 pour l'ajouter dans ma table2 comme une clé étrangère et je n'y arrive pas...
Version phpmyadmin : 4.2.11

Merci d'avance pour votre aide, s'il vous plaît !
Afficher la suite 

3 réponses

jordane45 21174 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 mai 2018 Dernière intervention - 6 mai 2015 à 02:32
-5
Merci
Bonjour,

Pour ajouter des Foreign Key via phpmyadmin il faut :
-Cliquer sur la table ou tu veux créer tes foreign keys.
-La page de structures s'ouvre, au centre tu as un lien "gestion des relations"

=> http://www.binarytides.com/blog/wp-content/uploads/2009/08/phpmyadmin_relation_view-600x443.png

Bonjour,

Merci pour ta réponse jordane45 :)

Bon après plus d'une journée entière plus une nuit sur phpmyadmin j'ai fini par trouver comment ajouter une pauvre clé étrangère Wouhou !

Je vais donc vous expliquer la procédure à suivre en espérant que ça puisse servir à quelqu'un.

Contexte: deux tables -> Table1 et Table2
Je voulais donc ajouter la clé primaire de la Table 1 dans la Table2 pour créer ma clé étrangère. Le problème est comment procéder avec phpmyadmin ?

Pour ce faire :

- Les tables doivent avoir le même moteur de stockage: InnoDB.

- Lors de la création de ma Table1, j'ai renseigné ma clé primaire en cliquant sur index et en sélectionnant PRIMARY. Puis j'ai ajouter mes autres colonnes.

- J'ai fais la même chose pour ma Table2, à la différence près que cette fois pour ajouter ma clé étrangère, j'ai dans cette table (Table2) ajouter en plus une colonne qui correspond au nom de la clé primaire venant de la Table1. Puis ne surtout pas oublier de mettre à cette colonne qui sera notre clé étrangère un index: Cliquez sur Index et sélectionner INDEX. En plus, ne renseignez QUE le nom, type et taille également MAIS sans Auto-increment.

- Et c'est après qu'on aura créer cette colonne qu'on pourra la définir comme une clé étrangère en l'associant notamment à la clé primaire de la Table1.

- Une fois la Table2 on va pouvoir cliquez sur "vue relationnelle" dans structure. Ensuite cibler la ligne qui correspond à notre "fausse" clé étrangère dans la mesure où elle n'est pas encore défini. Ne pas toucher à la partie "Relation interne" et renseigner le chemin vers la clé primaire de la Table1 dans la partie "Contrainte de clé étrangère(INNODB)".

J'espère avoir été assez explicite et que ça puisse servir à quelqu'un :)
Merci infiniment, c'est exactement ce dont j'avais besoin !