Création d' une clé étrangère dans MySQL est une partie de l'intégrité référentielle dans la base de données. Une clé étrangère se connecte à des tables . Une clé étrangère est utilisée en association avec une clé primaire , qui est le disque principal pour le groupe de données . Par exemple, une clé primaire peut être utilisé sur la table d'un client . Le numéro de client est un domaine unique qui identifie clairement le client . Une clé étrangère est placée sur la table des commandes , qui relie le client à sa commande . Clé primaire
Avant de créer une clé étrangère, une table qui contient un champ de clé primaire doit être créé pour l'intégrité référentielle . Dans cet exemple, la création de la table pour les clients et les commandes peuvent se faire en utilisant la ligne de commande MySQL. La syntaxe de création d'une table est la suivante:
CREATE TABLE customer ( CustId INT NOT NULL, prenom VARCHAR ( 30) , PRIMARY KEY ( CustId ) ) TYPE = InnoDB ;
Dans cet exemple, une table est créée en utilisant l' " créer table" déclaration de mot-clé . Si une clé primaire est indéterminée , le programmeur peut laisser de côté la déclaration de clé primaire jusqu'à ce qu'il sait sur quel champ de placer la clé. Cependant , il est important pour les tables pour contenir une clé primaire, car ces éléments accélérer les performances. Dans cet exemple, une clé primaire est créé sur le champ " CustId " . Le CustId est utilisé pour identifier distinctement le client. En outre, lors de l'attribution d'une clé primaire à une table, il doit être unique .
Clé étrangère
Maintenant que la clé primaire est créé, une clé étrangère est créée sur la table des commandes . Encore une fois, si le développeur de base de données n'est pas sûr de la clé étrangère à utiliser au moment de la création de la table , il peut être ajouté plus tard. Le code suivant crée un tableau de commandes avec une clé étrangère qui pointe vers la table de clients :
créer de l'ordre de TABLE ( orderId INT NOT NULL , INT coût , CustId INT NOT NULL, PRIMARY KEY ( OrderId ) , INDEX ( CustId ) , FOREIGN KEY ( CustId ) Références client ( CustId ) ) TYPE = InnoDB ;
Notez qu'une clé primaire a été créé pour cette table ainsi en utilisant la OrderId , qui est aussi une valeur unique. La déclaration qui définit la clé étrangère est le dernier dans la syntaxe de tableau . Il définit la clé étrangère et raconte la base de données où sa clé primaire est situé . Dans cet exemple , le champ CustId dans les ordres références de table de la CustId dans la table des clients .