Foreign Key hjælper med at etablere databaserelationer og vedligeholde referentiel integritet. De hjælper med at linke en eller flere kolonner i en tabel til en anden tabel. Sådan tilføjer du fremmednøgle i MySQL.
Sådan tilføjes fremmednøgle i MySQL
Her er trinene til at tilføje fremmednøgle i MySQL. Du kan tilføje en begrænsning af en fremmednøgle ved hjælp af CREATE TABLE- eller ALTER TABLE-sætninger i SQL.
Her er syntaksen til at oprette fremmednøgle i MySQL.
Brug af ALTER TABLE
ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...);
I ovenstående forespørgsel, tabelnavn er den tabel, hvor du vil tilføje fremmednøgle. constraint_name er navnet på den fremmede nøgle-begrænsning. foreign_key_name, … er listen over fremmednøglekolonner.
forældretabel er den tabel, som din fremmednøgle refererer til, efterfulgt af en liste over kolonnenavne i den tabel
Bonus Læs:MySQL Alter Table Column
Ved brug af CREATE TABLE
CREATE TABLE table_name( column_name column_description, CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...) )
I ovenstående forespørgsel, tabelnavn er den tabel, hvor du vil tilføje fremmednøgle. constraint_name er navnet på den fremmede nøgle-begrænsning. foreign_key_name, … er listen over fremmednøglekolonner.
forældretabel er den tabel, som din fremmednøgle refererer til, efterfulgt af en liste over kolonnenavne i den tabel.
Bemærk venligst , i ALTER TABLE skal du bruge ADD CONSTRAINT, mens du i CREATE TABLE kun skal bruge CONSTRAINT søgeord.
Bonus Læs:MySQL DROP UDENLANDSKE NØGLE-begrænsning
Eksempler på MySQL TILFØJ UDENLANDSKE NØGLER
Lad os sige, at du har følgende tabeller.
Lad os oprette 2 tabeller (kategorier og ordrer ) og tilføj fremmednøglebegrænsning til ordrer , der henviser til id kolonne i kategorier tabel.
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 Læs:MySQL DROP UNIK BEGRÆNSNING
Lad os tage et kig på det samme eksempel ved at bruge ALTER TABLE-sætningen.
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 gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!