Maison > base de données > tutoriel mysql > Connaissance de base des clés étrangères dans MySQL ?

Connaissance de base des clés étrangères dans MySQL ?

WBOY
Libérer: 2023-09-04 10:49:02
avant
520 Les gens l'ont consulté

MySQL 中外键的基础知识?

La clé étrangère est un type de contrainte qui peut être utilisée pour maintenir l'intégrité entre les tables. Si nous créons une clé étrangère pour une table, alors cette table est appelée table enfant et la deuxième table est appelée table parent.

Dans la table parent, la clé étrangère fera office de clé primaire. Créons un tableau.

Créez des sous-tableaux.

mysql> create table StudentEnrollment
   -> (
   -> StudentId int,
   -> StudentName varchar(200),
   -> StudentFKPK int
   -> );
Query OK, 0 rows affected (0.91 sec)
Copier après la connexion

Créer une table parent

mysql> create table College
   -> (
   -> StudentFKPK int,
   -> CourseId int,
   -> CourseName varchar(200),
   -> CollegeName varchar(200),
   -> primary key(StudentFKPK)
   -> );
Query OK, 0 rows affected (0.46 sec)
Copier après la connexion

Dans la table parent, la colonne "StudentFKPK" est la clé primaire. Nous ajouterons des clés étrangères à l'aide de la commande ALTER.

Voici la syntaxe pour ajouter des clés étrangères.

ALTER table yourChildTableName add constraint anyConstraintName
foreign key(primary key column name for parent table) 
references College(primary key column name for parent table);
Copier après la connexion

Voici l'implémentation de la syntaxe ci-dessus dans la requête suivante.

mysql> alter table StudentEnrollment add constraint StudCollegeConst foreign key(StudentFKPK) references College(StudentFKPK);
Query OK, 0 rows affected (1.78 sec)
Records: 0  Duplicates: 0  Warnings: 0
Copier après la connexion

Syntaxe pour vérifier l'existence de contraintes de clé étrangère.

SELECT  TABLE_NAME, COLUMN_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NA FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHER  REFERENCED_TABLE_NAME = 'yourParentTableName or your referencedTableName';
Copier après la connexion

La syntaxe ci-dessus est implémentée dans la requête ci-dessous.

mysql> SELECT
   ->   TABLE_NAME,
   ->   COLUMN_NAME,
   ->   CONSTRAINT_NAME,
   ->   REFERENCED_TABLE_NAME,
   ->   REFERENCED_COLUMN_NAME
   ->   FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
   ->   WHERE
   ->   REFERENCED_TABLE_NAME = 'College';
Copier après la connexion

Voici le résultat.

+-------------------+-------------+------------------+-----------------------+------------------------+
| TABLE_NAME        | COLUMN_NAME | CONSTRAINT_NAME  | REFERENCED_TABLE_NAME | REFERENCED_COLUMN_NAME |
+-------------------+-------------+------------------+-----------------------+------------------------+
| StudentEnrollment | StudentFKPK | StudCollegeConst | College               | StudentFKPK            |
+-------------------+-------------+------------------+-----------------------+------------------------+
1 row in set, 2 warnings (0.03 sec)
Copier après la connexion

Nous avons une colonne appelée StudentFKPK et CONSTRAINT_NAME est StudCollegeConst.

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!

source:tutorialspoint.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