En fait, FOREIGN KEY est une colonne ou une combinaison de plusieurs colonnes qui peut être utilisée pour établir un lien entre les données de deux tables. En d’autres termes, on peut dire que la contrainte FOREIGN KEY est liée aux deux tables. Il est également utilisé pour améliorer l'intégrité des données car les clés primaires d'une table sont liées aux clés étrangères d'autres tables.
FOREIGN KEY [column_name] REFERENCES [table having Primary Key] ([column_name]);
Ici REFERENCES est un mot-clé ; column_name est la liste des colonnes sur lesquelles FOREIGN KEY doit être définie ; table avec la clé primaire est le nom de la table contenant la clé primaire ; PRIMARY KEY a été défini.
Supposons que nous ayons deux tables "Client" et "Commandes". La relation entre les deux tables peut être établie grâce à une clé étrangère dans la table « commandes » précisée par le champ « Cust_Id ». La requête pour créer deux tables est la suivante -
mysql> Create Table Customer(Cust_ID int Primary Key, First_name Varchar(20), Last_name Varchar(20), City Varchar(10)); Query OK, 0 rows affected (0.13 sec) mysql> Create Table Orders(Order_Id Int Primary Key, Product_Name Varchar(25), Orderdate DATE, Cust_ID Int, FOREIGN KEY(Cust_ID) REFERENCES Customer(Cust_id)); Query OK, 0 rows affected (0.13 sec) mysql> Describe Orders; +--------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+-------------+------+-----+---------+-------+ | Order_Id | int(11) | NO | PRI | NULL | | | Product_Name | varchar(25) | YES | | NULL | | | Orderdate | date | YES | | NULL | | | Cust_ID | int(11) | YES | MUL | NULL | | +--------------+-------------+------+-----+---------+-------+ 4 rows in set (0.04 sec)
Ici, la table "Client" est appelée table parent ou table de référence et la table "Commandes" est appelée table enfant ou table de référence. Les lignes de la table enfant doivent contenir des valeurs qui existent dans la table parent. Par exemple, chaque ligne du tableau « commandes » doit avoir un « Cust_Id » qui existe dans le tableau « client ».
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!