Je veux faire de Doctorid une clé étrangère à la table de mes patients.
Toutes mes tables ont donc été créées - le problème principal est que, lorsque je vais dans la vue table> structure>, seule la clé primaire apparaisse me permettant de créer une clé étrangère (et c'est déjà la clé primaire de la table concernée que je veux conserver - c’est-à-dire que le patient de la table patient est activé, mais que l’ID du médecin (j’ai une table de médecin également - n’est pas activé).
J'ai une autre table avec deux clés composites (medicineid et patientid), ce qui me permet de changer les deux
Dois-je changer l'indice d'ID de médecin dans la table des patients avec autre chose? les deux ne peuvent pas être des clés primaires car l'ID du patient est la principale pour la table des patients - le médecin est l'étranger.
J'espère que tout le monde peut aider
Sincères amitiés
Vous pouvez le faire à l'ancienne ... avec une instruction SQL qui ressemble à ceci
ALTER TABLE table_name
ADD CONSTRAINT fk_foreign_key_name
FOREIGN KEY (foreign_key_name)
REFERENCES target_table(target_key_name);
Cela suppose que les clés existent déjà dans la table correspondante
La clé doit être indexée pour appliquer la contrainte de clé étrangère. Pour ce faire, suivez les étapes.
Vous pourrez attribuer DOCTOR_ID comme étranger maintenant.
Lorsque vous créez un tableau, vous pouvez donner comme suit.
CREATE TABLE categories(
cat_id int not null auto_increment primary key,
cat_name varchar(255) not null,
cat_description text
) ENGINE=InnoDB;
CREATE TABLE products(
prd_id int not null auto_increment primary key,
prd_name varchar(355) not null,
prd_price decimal,
cat_id int not null,
FOREIGN KEY fk_cat(cat_id)
REFERENCES categories(cat_id)
ON UPDATE CASCADE
ON DELETE RESTRICT
)ENGINE=InnoDB;
et quand après la table créer comme ça
ALTER table_name
ADD CONSTRAINT constraint_name
FOREIGN KEY foreign_key_name(columns)
REFERENCES parent_table(columns)
ON DELETE action
ON UPDATE action;
Suivre l'exemple pour cela.
CREATE TABLE vendors(
vdr_id int not null auto_increment primary key,
vdr_name varchar(255)
)ENGINE=InnoDB;
ALTER TABLE products
ADD COLUMN vdr_id int not null AFTER cat_id;
Pour ajouter une clé étrangère à la table products, utilisez l'instruction suivante:
ALTER TABLE products
ADD FOREIGN KEY fk_vendor(vdr_id)
REFERENCES vendors(vdr_id)
ON DELETE NO ACTION
ON UPDATE CASCADE;
Pour déposer la clé
ALTER TABLE table_name
DROP FOREIGN KEY constraint_name;
J'espère que cette aide pour apprendre les clés étrangères fonctionne
Pour pouvoir créer une relation, la table Storage Engine doit être InnoDB. Vous pouvez éditer dans Opérations.
Ensuite, vous devez vous assurer que la colonne id de votre table principale a été indexée. Il devrait apparaître à la section Index de Structure.
Enfin, vous pouvez voir l'option Vue Relations dans Structure Onglet. Lors de l’édition, vous pourrez sélectionner la colonne parente dans la table étrangère pour créer la relation.
Voir pièces jointes. J'espère que cela pourrait être utile pour n'importe qui.