Klucz obcy pomaga nawiązać relacje z bazą danych i zachować integralność referencyjną. Pomagają połączyć jedną lub więcej kolumn w jednej tabeli z inną tabelą. Oto jak dodać klucz obcy w MySQL.
Jak dodać klucz obcy w MySQL
Oto kroki, aby dodać klucz obcy w MySQL. Możesz dodać ograniczenie klucza obcego za pomocą instrukcji CREATE TABLE lub ALTER TABLE w SQL.
Oto składnia tworzenia klucza obcego w MySQL.
Korzystanie z ALTER TABLE
ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...);
W powyższym zapytaniu nazwa_tabeli to tabela, do której chcesz dodać klucz obcy. nazwa_ograniczenia to nazwa ograniczenia klucza obcego. nazwa_klucza_obcego, … to lista kolumn kluczy obcych.
tabela_rodzica jest tabelą, do której odwołuje się twój Foreign_key, po której następuje lista nazw kolumn w tej tabeli
Przeczytaj bonus:Kolumna Alter Table MySQL
Korzystanie z CREATE TABLE
CREATE TABLE table_name( column_name column_description, CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...) )
W powyższym zapytaniu nazwa_tabeli to tabela, do której chcesz dodać klucz obcy. nazwa_ograniczenia to nazwa ograniczenia klucza obcego. nazwa_klucza_obcego, … to lista kolumn kluczy obcych.
tabela_rodzica jest tabelą, do której odwołuje się twój Foreign_key, po której następuje lista nazw kolumn w tej tabeli.
Uwaga , w ALTER TABLE musisz użyć ADD CONSTRAINT, podczas gdy w CREATE TABLE wystarczy użyć słowa kluczowego CONSTRAINT.
Przeczytaj bonus:Ograniczenie klucza obcego MySQL DROP
Przykłady MySQL ADD OBCY KEY
Załóżmy, że masz następujące tabele.
Utwórzmy 2 tabele (kategorie i zamówienia ) i dodaj ograniczenie klucza obcego do zamówień , odwołując się do id kolumna w kategoriach tabela.
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 | | +-------------+---------+------+-----+---------+----------------+
Przeczytaj bonus:MySQL DROP UNIKALNE OGRANICZENIE
Rzućmy okiem na ten sam przykład, używając instrukcji 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 ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!