Výukový program MySQL

MySQL HOME Úvod do MySQL MySQL RDBMS

MySQL SQL

MySQL SQL MySQL SELECT MySQL KDE MySQL A NEBO NE MySQL OBJEDNAT PODLE MySQL INSERT INTO MySQL hodnoty NULL AKTUALIZACE MySQL MySQL DELETE LIMIT MySQL MySQL MIN a MAX MySQL COUNT, AVG, SUM MySQL LIKE Zástupné znaky MySQL MySQL IN MySQL MEZI Aliasy MySQL Připojení k MySQL VNITŘNÍ PŘIPOJENÍ k MySQL MySQL LEFT JOIN MySQL SPRÁVNÉ PŘIPOJENÍ SE MySQL CROSS JOIN Vlastní připojení k MySQL MySQL UNION MySQL GROUP BY MySQL MÁME MySQL EXISTUJE MySQL JAKÉKOLI, VŠECHNY MySQL INSERT SELECT CASE MySQL Funkce MySQL Null Komentáře k MySQL Operátoři MySQL

Databáze MySQL

MySQL Vytvořte DB MySQL Drop DB Vytvořit tabulku MySQL MySQL Drop Table MySQL Alter Table Omezení MySQL MySQL není Null Unikátní MySQL Primární klíč MySQL cizí klíč MySQL Kontrola MySQL Výchozí MySQL Vytvořit index MySQL Automatický přírůstek MySQL Data MySQL Zobrazení MySQL

Reference MySQL

MySQL datové typy Funkce MySQL

Příklady MySQL

Příklady MySQL MySQL kvíz Cvičení MySQL

Omezení zahraničního klíče MySQL


Omezení zahraničního klíče MySQL

Omezení FOREIGN KEYse používá k zabránění akcím, které by zničily propojení mezi tabulkami.

A FOREIGN KEYje pole (nebo kolekce polí) v jedné tabulce, které odkazuje na pole PRIMARY KEYv jiné tabulce.

Tabulka s cizím klíčem se nazývá podřízená tabulka a tabulka s primárním klíčem se nazývá odkazovaná nebo nadřazená tabulka.

Podívejte se na následující dvě tabulky:

Tabulka osob

PersonID LastName FirstName Age
1 Hansen Ola 30
2 Svendson Tove 23
3 Pettersen Kari 20

Tabulka objednávek

OrderID OrderNumber PersonID
1 77895 3
2 44678 3
3 22456 2
4 24562 1

Všimněte si, že sloupec "ID osoby" v tabulce "Objednávky" odkazuje na sloupec "ID osoby" v tabulce "Osoby".

Sloupec "ID osoby" v tabulce "Osoby" je PRIMARY KEYv tabulce "Osoby".

Sloupec "ID osoby" v tabulce "Objednávky" je FOREIGN KEYv tabulce "Objednávky".

Omezení FOREIGN KEYbrání vložení neplatných dat do sloupce cizího klíče, protože to musí být jedna z hodnot obsažených v nadřazené tabulce.



CIZÍ KLÍČ na CREATE TABLE

Následující SQL vytvoří ve FOREIGN KEYsloupci "PersonID" při vytvoření tabulky "Objednávky":

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);

Chcete-li povolit pojmenování FOREIGN KEYomezení a definovat FOREIGN KEYomezení pro více sloupců, použijte následující syntaxi SQL:

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
    REFERENCES Persons(PersonID)
);

CIZÍ KLÍČ na ALTER TABLE

Chcete-li vytvořit FOREIGN KEYomezení ve sloupci "PersonID", když je tabulka "Objednávky" již vytvořena, použijte následující SQL:

ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

Chcete-li povolit pojmenování FOREIGN KEYomezení a definovat FOREIGN KEYomezení pro více sloupců, použijte následující syntaxi SQL:

ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

ZRUŠTE ZAHRANIČNÍ KLÍČOVÉ omezení

Chcete-li zrušit FOREIGN KEYomezení, použijte následující SQL:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;