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)
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)
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);
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
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';
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';
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)
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!