sql >> Database >  >> RDS >> Mysql

MySQL Buitenlandse sleutel toevoegen

Foreign Key helpt databaserelaties tot stand te brengen en de referentiële integriteit te behouden. Ze helpen bij het koppelen van een of meer kolommen in de ene tabel aan een andere tabel. Hier leest u hoe u een externe sleutel toevoegt in MySQL.

Hoe een externe sleutel in MySQL toe te voegen

Hier zijn de stappen om een ​​externe sleutel toe te voegen in MySQL. U kunt een externe-sleutelbeperking toevoegen met behulp van CREATE TABLE- of ALTER TABLE-instructies in SQL.

Hier is de syntaxis om een ​​externe sleutel in MySQL te maken.

ALTER TABLE gebruiken

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

In de bovenstaande zoekopdracht, table_name is de tabel waarin u een externe sleutel wilt toevoegen. constraint_name is de naam van de externe sleutelbeperking. foreign_key_name, … is de lijst met kolommen met vreemde sleutels.

parent_table is de tabel waarnaar uw refererende_sleutel verwijst, gevolgd door een lijst met kolomnamen in die tabel

Bonus lezen:MySQL Wijzig tabelkolom

CREATE TABLE gebruiken

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

In de bovenstaande zoekopdracht, table_name is de tabel waar u een externe sleutel wilt toevoegen. constraint_name is de naam van de externe sleutelbeperking. foreign_key_name, … is de lijst met kolommen met vreemde sleutels.

parent_table is de tabel waarnaar uw refererende_sleutel verwijst, gevolgd door een lijst met kolomnamen in die tabel.

Let op , in ALTER TABLE moet je ADD CONSTRAINT gebruiken, terwijl je in CREATE TABLE alleen het trefwoord CONSTRAINT moet gebruiken.

Bonus lezen:MySQL DROP FOREIGN KEY-beperking

MySQL ADD FOREIGN KEY Voorbeelden

Stel dat u de volgende tabellen heeft.

Laten we 2 tabellen maken (categorieën en bestellingen ) en voeg een externe sleutelbeperking toe aan orders , verwijzend naar id kolom in categorieën tafel.

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 Lezen:MySQL DROP UNIEKE BEPERKING

Laten we hetzelfde voorbeeld bekijken met de instructie 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 maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!

  1. postgresql-array uitpakken in rijen

  2. Hoe een API-client te voorzien van 1.000.000 databaseresultaten?

  3. TOP 10 rijen ophalen zonder TOP of LIMIT te gebruiken? – Interviewvraag van de week #247

  4. Hoe Cosh() werkt in PostgreSQL