La clé étrangère aide à établir des relations de base de données et à maintenir l'intégrité référentielle. Ils permettent de lier une ou plusieurs colonnes d'une table à une autre table. Voici comment ajouter une clé étrangère dans MySQL.
Comment ajouter une clé étrangère dans MySQL
Voici les étapes pour ajouter une clé étrangère dans MySQL. Vous pouvez ajouter une contrainte de clé étrangère à l'aide des instructions CREATE TABLE ou ALTER TABLE dans SQL.
Voici la syntaxe pour créer une clé étrangère dans MySQL.
Utiliser ALTER TABLE
ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...);
Dans la requête ci-dessus, table_name est la table où vous souhaitez ajouter la clé étrangère. nom_contrainte est le nom de la contrainte de clé étrangère. nom_clé_étrangère, … est la liste des colonnes de clé étrangère.
table_parent est la table à laquelle votre clé_étrangère fait référence, suivie de la liste des noms de colonnes dans cette table
Lecture bonus :Colonne MySQL Alter Table
Utiliser CRÉER TABLE
CREATE TABLE table_name( column_name column_description, CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...) )
Dans la requête ci-dessus, table_name est la table où vous voulez ajouter la clé étrangère. nom_contrainte est le nom de la contrainte de clé étrangère. nom_clé_étrangère, … est la liste des colonnes de clé étrangère.
table_parent est la table à laquelle votre clé_étrangère fait référence, suivie de la liste des noms de colonne dans cette table.
Veuillez noter , dans ALTER TABLE, vous devez utiliser ADD CONSTRAINT tandis que dans CREATE TABLE, vous devez utiliser uniquement le mot-clé CONSTRAINT.
Lecture bonus :MySQL DROP FOREIGN KEY Constraint
Exemples MySQL AJOUTER UNE CLÉ ÉTRANGÈRE
Disons que vous avez les tables suivantes.
Créons 2 tables (catégories et commandes ) et ajouter une contrainte de clé étrangère aux commandes , faisant référence à id colonne dans les catégories tableau.
mysql> create table categories(id int auto_increment primary key,name varchar(255)); mysql> create table orders(id int auto_increment primary key,category_id int, CONSTRAINT fk_cat FOREIGN KEY (category_id) REFERENCES categories(id)); mysql> describe orders; +-------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | category_id | int(11) | YES | MUL | NULL | | +-------------+---------+------+-----+---------+----------------+
Lecture bonus :MySQL DROP UNIQUE CONTRAINTE
Examinons le même exemple en utilisant l'instruction ALTER TABLE.
mysql> create table orders(id int auto_increment primary key,category_id int); mysql> create table categories(id int auto_increment primary key,name varchar(255)); mysql> ALTER TABLE orders ADD CONSTRAINT fk_cat FOREIGN KEY (category_id) REFERENCES categories(id); mysql> describe orders; +-------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | category_id | int(11) | YES | MUL | NULL | | +-------------+---------+------+-----+---------+----------------+
Ubiq facilite la visualisation des données en quelques minutes et la surveillance dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !