21 Novembre 2017 à 20:14:20

Auteur Sujet: PHPMyAdmin  (Lu 3143 fois)

nguex

  • Nouveau membre
  • *
  • Messages: 8
  • Points gagnés: 0
    • Voir le profil
PHPMyAdmin
« le: 18 Avril 2007 à 17:32:39 »
bonjour,
C'est pour savoir comment mettre des contraintes d'intégrité referentielles (clés étrangères) sur les tables crées avec PhpMyAdmin. Les seules types de clé que je vois sont celles Primaires, index, unique et full texte. Donc j'aimerai savoir comment mettre un clé étrangère sur une table et dire qu'elle fait référence à l'attribut d'une autre table se trouvant dans la même BD.
Merci de votre aide.

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : PHPMyAdmin
« Réponse #1 le: 18 Avril 2007 à 18:43:11 »
Bonjour,

Sauf s'ils ont fait une nouvelle version que j'ai encore utilisé, je ne me souviens pas qu'il y ait un lien ou menu pour créer une clé étrangère sous phpmyadmin.

Par contre dans l'onglet SQL, vous pouvez le faire en code avec l'instruction FOREIGN KEY. Exemple :
CREATE TABLE prof_fam (
nom_fam VARCHAR(3) NOT NULL,
nom_prof VARCHAR(10) NOT NULL,
PRIMARY KEY(nom_fam,nom_prof),
FOREIGN KEY(nom_fam) REFERENCES familles(nom_fam) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY(nom_prof) REFERENCES professions(nom_prof) ON DELETE CASCADE ON UPDATE CASCADE,
INDEX(nom_fam),
INDEX(nom_prof)
) TYPE = InnoDB;


Attention par contre, seul le type de base de données InnoDB de mysql permet de le faire, ça ne doit pas fonctionner en myisam...

Si votre but est juste de faire des suppressions en cascade  ou choses du genre, sachez aussi que vous avez un lien "Gestion des relations" dans la structure des tables, qui permet de faire ce types de relations.
Cordialement,
Damien

Tutoriels informatique

nguex

  • Nouveau membre
  • *
  • Messages: 8
  • Points gagnés: 0
    • Voir le profil
Re : PHPMyAdmin
« Réponse #2 le: 19 Avril 2007 à 09:44:12 »
Pourtant quand je crée mes tables dans l'invite de commande avec les commandes SQL et que je vais regarder la structure dans PHPMyAdmin, la clé étrangère que j'ai créée est appelée 'index': ce que je ne comprends pas.
Une autre question j'ai trouvé la syntaxe que vous venez de me donner dans un livre mais ils n'ont pas spécifié qu'il fallait que je mette le type InnoDB, est ce obligatoire?

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : PHPMyAdmin
« Réponse #3 le: 19 Avril 2007 à 17:55:23 »
Bonjour,

Oui, InnoDB est obligatoire dès que l'on doit travailler avec les transactions (type ACID) et les clés étrangères. En revanche, toutes les mises à jour doivent se faire par transaction, ce qui peut ralentir le système. Autre handicap, il n'y est pas possible d'utiliser d'appel fulltext, ce qui ralentit d'autant plus le travail.
InnoDB dispose d'un système de récupération automatique en cas de crash et fait un gros usage de l'espace disque et mémoire.
Cordialement,
Damien

Tutoriels informatique