Najnowsze tutoriale tworzenie stron internetowych
 

SQL Ograniczenie FOREIGN KEY


Ograniczenie SQL FOREIGN KEY

Klucz obcy w jednym z punktów tabeli klucza podstawowego w innej tabeli.

Zilustrujmy klucz obcy z przykładu. Spójrz na dwóch poniższych tabelach:

"Persons" tabeli:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

"Orders" tabeli:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 2
4 24562 1

Zauważ, że "P_Id" kolumna w "Orders" punktów tabeli do "P_Id" kolumny w "Persons" tabeli.

"P_Id" kolumna "Persons" tabeli jest klucz podstawowy w "Persons" tabeli.

"P_Id" kolumna "Orders" tabeli jest klucz obcy w "Orders" tabeli.

Ograniczenie klucza obcego służy zapobieganiu działań, które niszczą więzi między tabelami.

Klucz obcy ograniczenie zapobiega również nieprawidłowe dane przed włożona do kolumny klucza obcego, ponieważ musi to być jedna z wartości zawartych w tabeli, który wskazuje.


SQL FOREIGN KEY ograniczeniem CREATE TABLE

Poniższy SQL tworzy klucz obcy na "P_Id" kolumny, gdy "Orders" tabeli jest tworzony:

MySQL:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

Aby umożliwić nazewnictwa klucz obcy ograniczeń, a do definiowania ograniczenie klucz obcy na wielu kolumnach, należy użyć następującej składni SQL:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)

SQL FOREIGN KEY ograniczeniem ALTER TABLE

Aby utworzyć klucz obcy ograniczenia na "P_Id" kolumny, gdy "Orders" tabeli jest już utworzony, należy użyć następującego SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

Aby umożliwić nazewnictwa klucz obcy ograniczeń, a do definiowania ograniczenie klucz obcy na wielu kolumnach, należy użyć następującej składni SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

Aby usunąć klucz obcy Wiązanie

Aby usunąć ograniczenie klucz obcy, należy użyć następującego SQL:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders