Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL Ajouter une clé étrangère

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 !