FOREIGN KEY - One punktów tabeli do innego PRIMARY KEY.
Spójrz na następujące dwie tabele:
Istnieje tabeli "Osoby":
| P_Id | Nazwisko | Imię | Address | Miasto |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Istnieje tabeli "Zamówienia":
| O_Id | OrderNo | P_Id |
|---|---|---|
| 1 | 77895 | 3 |
| 2 | 44678 | 3 |
| 3 | 22456 | 2 |
| 4 | 24562 | 1 |
Należy pamiętać, że w kolumnie "P_Id" w tabeli "Zamówienia" oznacza "P_Id" w tabeli "Osoby".
W kolumnie "P_Id" w tabeli "Osoby" jest kluczem podstawowym.
W kolumnie "P_Id" w tabeli "Zamówienia" to klucz obcy.
FOREIGN KEY nie zezwala, aby wstawić nieprawidłowych danych w kolumnie "P_Id" w tabeli "Zamówienia" i "Osoby".
SQL ograniczenia klucz obcy w TWORZENIE TABLE
Następujące SQL tworzy kolumnę klucza obcego "P_Id", podczas tworzenia tabeli "Zamówienia":
MySQL:
TWORZENIE TABELA Zamówienia ( O_Id int NIE NULL, OrderNo int NIE NULL, P_Id int, PRIMARY KEY (O_Id), FOREIGN KEY (P_Id) Referencje Osób(P_Id) )
SQL Server / Oracle / MS Access:
TWORZENIE TABELA Zamówienia ( O_Id int NIE NULL PRIMARY KEY, OrderNo int NIE NULL, P_Id int FOREIGN KEY Referencje Osób(P_Id) )
Można rozpowszechniać ogranicznik FOREIGN KEY na wielu kolumn, do korzystania z następujących składni SQL:
MySQL / SQL Server / Oracle / MS Access:
1 2 3 4 5 6 7 8 |
TWORZENIE TABELA Zamówienia( O_Id int NIE NULL, OrderNo int NIE NULL, P_Id int, PRIMARY KEY (O_Id), CONSTRAINT fk_PerZamówienia FOREIGN KEY (P_Id) Referencje Osób(P_Id) ) |
SQL klucz obcy w ALTER TABLE
Następujące SQL tworzy kolumnę klucza obcego "P_Id", gdy "Zamówienia" tabeli jest już utworzone:
MySQL / SQL Server / Oracle / MS Access:
1 2 3 |
ALTER TABELA Zamówienia ADD FOREIGN KEY (P_Id) Referencje Osób(P_Id) |
Można rozpowszechniać ogranicznik FOREIGN KEY na wielu kolumn, do korzystania z następujących składni SQL:
MySQL / SQL Server / Oracle / MS Access:
1 2 3 4 |
ALTER TABELA Zamówienia ADD CONSTRAINT fk_PerZamówienia FOREIGN KEY (P_Id) Referencje Osób(P_Id) |
Usuwanie FOREIGN KEY
Aby usunąć klucz obcy przy użyciu następujących SQL:
MySQL:
1 2 |
ALTER TABELA Zamówienia DROP FOREIGN KEY fk_PerZamówienia |
SQL Server / Oracle / MS Access:
1 2 |
ALTER TABELA Zamówienia DROP CONSTRAINT fk_PerZamówienia |
SQL Foreign Key





Komentarze
1
2 s? Cytować
w3schools.com /.../...
Cytować