Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dodaj klucz obcy MySQL

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ś!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zoptymalizować wydajność MySQL za pomocą MySQLTuner

  2. 3 sposoby na „odheksowanie” ciągu w MySQL

  3. Najważniejsze błędy, których należy unikać podczas replikacji MySQL

  4. Jak wstawić tablicę do pojedynczej instrukcji MySQL Prepared z PHP i PDO

  5. Konwertuj tekst na liczbę w zapytaniu MySQL