Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL Aggiungi chiave esterna

La chiave esterna aiuta a stabilire relazioni di database e mantenere l'integrità referenziale. Aiutano a collegare una o più colonne di una tabella a un'altra tabella. Ecco come aggiungere una chiave esterna in MySQL.

Come aggiungere una chiave esterna in MySQL

Ecco i passaggi per aggiungere la chiave esterna in MySQL. È possibile aggiungere un vincolo di chiave esterna utilizzando le istruzioni CREATE TABLE o ALTER TABLE in SQL.

Ecco la sintassi per creare una chiave esterna in MySQL.

Utilizzo di ALTER TABLE

ALTER TABLE table_name 
ADD CONSTRAINT constraint_name 
FOREIGN KEY (foreign_key_name,...) 
REFERENCES parent_table(column_name,...);

Nella query precedente, nome_tabella è la tabella in cui vuoi aggiungere la chiave esterna. nome_vincolo è il nome del vincolo di chiave esterna. nome_chiave_estero, … è l'elenco delle colonne della chiave esterna.

tabella_genitore è la tabella a cui fa riferimento la tua chiave esterna, seguita dall'elenco dei nomi delle colonne in quella tabella

Bonus Lettura:colonna MySQL Alter Table

Utilizzo di CREATE TABLE

CREATE TABLE table_name(
    column_name column_description,
    CONSTRAINT constraint_name
    FOREIGN KEY (foreign_key_name,...) 
        REFERENCES parent_table(column_name,...)
)

Nella query precedente, nome_tabella è la tabella in cui vuoi aggiungere la chiave esterna. nome_vincolo è il nome del vincolo di chiave esterna. nome_chiave_estero, … è l'elenco delle colonne della chiave esterna.

tabella_genitore è la tabella a cui fa riferimento la tua chiave esterna, seguita dall'elenco dei nomi delle colonne in quella tabella.

Nota , in ALTER TABLE devi usare ADD CONSTRAINT mentre in CREATE TABLE devi usare solo la parola chiave CONSTRAINT.

Bonus Lettura:MySQL DROP FOREIGN KEY Vincolo

Esempi di MySQL AGGIUNGI CHIAVE ESTERA

Supponiamo che tu abbia le seguenti tabelle.

Creiamo 2 tabelle (categorie e ordini ) e aggiungi il vincolo di chiave esterna a ordini , facendo riferimento a id colonna in categorie tabella.

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    |                |
+-------------+---------+------+-----+---------+----------------+

Bonus Leggi:MySQL DROP UNIQUE VSTRAINT

Diamo un'occhiata allo stesso esempio usando l'istruzione 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 semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!