FOREIGN KEY - Eine Tabelle weist auf einen weiteren PRIMARY KEY.
Schauen Sie sich die folgenden beiden Tabellen:
Es gibt eine Tabelle "Personen":
| P_id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Es gibt eine Tabelle "Bestellungen":
| O_ID | OrderNo | P_id |
|---|---|---|
| 1 | 77895 | 3 |
| 2 | 44678 | 3 |
| 3 | 22456 | 2 |
| 4 | 24562 | 1 |
Beachten Sie, dass die Spalte "p_id" in der Tabelle "Bestellungen" anzeigt "p_id" in der Tabelle "Personen".
Die Spalte "p_id" in der Tabelle "Personen" ist ein PRIMARY KEY.
Die Spalte "p_id" in der Tabelle "Bestellungen" ist ein Fremdschlüssel.
FOREIGN KEY erlaubt keine fehlerhaften Daten in der Spalte "p_id" in der Tabelle "Bestellungen" und "Personen" einzufügen.
SQL FOREIGN KEY-Einschränkungen in CREATE TABLE
Die folgende SQL schafft eine FOREIGN KEY-Spalte "p_id", bei der Erstellung der Tabelle "Bestellungen":
MySQL:
CREATE TABELLE Bestellungen ( O_ID int NICHT NULL, OrderNo int NICHT NULL, P_id int, PRIMARY KEY (O_ID), FOREIGN KEY (P_id) REFERENZEN Personen(P_id) )
SQL Server / Oracle / MS Access:
CREATE TABELLE Bestellungen ( O_ID int NICHT NULL PRIMARY KEY, OrderNo int NICHT NULL, P_id int FOREIGN KEY REFERENZEN Personen(P_id) )
Sie können verteilen Limiter Fremdschlüssel auf mehrere Spalten, um die folgende Syntax SQL verwenden:
MySQL / SQL Server / Oracle / MS Access:
1 2 3 4 5 6 7 8 |
CREATE TABELLE Bestellungen( O_ID int NICHT NULL, OrderNo int NICHT NULL, P_id int, PRIMARY KEY (O_ID), CONSTRAINT fk_PerBestellungen FOREIGN KEY (P_id) REFERENZEN Personen(P_id) ) |
SQL FOREIGN KEY-Einschränkungen in ALTER TABLE
Die folgende SQL schafft eine FOREIGN KEY-Spalte "p_id", wenn die "Bestellungen" Tabelle bereits erstellt:
MySQL / SQL Server / Oracle / MS Access:
1 2 3 |
ALTER TABELLE Bestellungen ADD FOREIGN KEY (P_id) REFERENZEN Personen(P_id) |
Sie können verteilen Limiter Fremdschlüssel auf mehrere Spalten, um die folgende Syntax SQL verwenden:
MySQL / SQL Server / Oracle / MS Access:
1 2 3 4 |
ALTER TABELLE Bestellungen ADD CONSTRAINT fk_PerBestellungen FOREIGN KEY (P_id) REFERENZEN Personen(P_id) |
Entfernung von FOREIGN KEY
So löschen Sie eine FOREIGN KEY-Einschränkung mithilfe der folgenden SQL:
MySQL:
1 2 |
ALTER TABELLE Bestellungen DROP FOREIGN KEY fk_PerBestellungen |
SQL Server / Oracle / MS Access:
1 2 |
ALTER TABELLE Bestellungen DROP CONSTRAINT fk_PerBestellungen |
SQL Foreign Key





Kommentare
1
2 s? Zitieren
w3schools.com /.../...
Zitieren