Maison > base de données > tutoriel mysql > Quels sont les moyens d'ajouter des clés étrangères dans Mysql ?

Quels sont les moyens d'ajouter des clés étrangères dans Mysql ?

WBOY
Libérer: 2023-05-29 17:10:48
avant
7120 Les gens l'ont consulté

Plusieurs façons d'ajouter des clés étrangères dans Mysql

Remarque : L'ajout de clés étrangères est ajouté à la table esclave (c'est-à-dire la table enfant)
La table parent est la table principale

Méthode 1 :

Avant de créer la table :

FOREIGN KEY (id de la table enfant) REFERENCES nom de la table associée (id de la table maître étrangère)

Par exemple

  create table emp( 			
  	e_id int auto_increment primary key, 			
  	ename varchar(50) not null, 			
  	age int, 			job varchar(20),
  	salary int, 			
  	entrydate date, 			
  	managerid int, 			
  	dept_id int,
  	FOREIGN KEY (dept_id) REFERENCES dept(id) 	
  );
Copier après la connexion

Méthode 2 :

Ajouter après avoir créé la table :

ALTER TABLE Table 1 ADD FOREIGN KEY (de la table Foreign key) REFERENCES dept (clé primaire de la table principale);

 例如:
 		ALTER TABLE emp ADD FOREIGN KEY (dep_id) REFERENCES dept(id);
Copier après la connexion

Remarque :

La table principale (dept) existe dans la table esclave (emp), et la table esclave fait référence au clé étrangère et ne peut pas être supprimée directement (table principale)

DROP TABLE dept; --Delete failed

Lors de la suppression d'une table, s'il y a des références de clé étrangère, vous devez d'abord supprimer la table esclave (c'est-à-dire supprimer toutes les tables avec contraintes de clé étrangère pertinentes) avant de pouvoir supprimer la table maître.
Les clés étrangères ci-dessus sont toutes des clés étrangères physiques, qui sont des références au niveau de la base de données et ne sont pas recommandées. Leur utilisation augmentera considérablement le degré de couplage des données.

Clé primaire :

identifie de manière unique un enregistrement. Elle ne peut pas être dupliquée et ne peut pas être vide. Elle est utilisée pour garantir l'intégrité des données. clé d'une autre table. Les clés étrangères peuvent avoir des doublons ou des valeurs nulles et sont utilisées pour établir des relations avec d'autres tables. Par conséquent, si nous parlons de clés étrangères, cela doit impliquer au moins deux tables.

Remarque :

1. Le champ de clé étrangère doit être exactement du même type que la table principale (longueur, etc.) lors de sa création, sinon une erreur sera signalée lors de la création de la clé étrangère ;

2. La table de clé étrangère ne peut pas insérer des données qui n'existent pas dans la table principale (les données font référence aux données avec la clé primaire de la table principale ou la clé étrangère de la table secondaire). –Par exemple, si le numéro de département est seulement 1, 2, 3, 4 et que la valeur de la clé étrangère est 5 lors de l'insertion des données de la table, une erreur se produira
— , les contraintes de clé étrangère de la table de clé étrangère associée ont été automatiquement modifiées.

La différence entre ajouter des contraintes et ne pas les ajouter

Si les contraintes ne sont pas ajoutées, le système générera automatiquement des noms pour elles, ce qui peut être difficile à retenir. En ajoutant une contrainte, vous pouvez nommer les contraintes selon vos propres intentions.

Ajouté : opération de suppression de clé étrangère MySQL

1 Affichez la clé étrangère à supprimer. show create table nom de la table ;

2 Voir les contraintes ;

3. Une façon de le réécrire est : Utilisez la commande alter table pour supprimer les contraintes de clé étrangère dans la table. La syntaxe est la suivante : ALTER TABLE nom de la table DROP FOREIGN KEY nom de la contrainte ;

Quels sont les moyens dajouter des clés étrangères dans Mysql ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal