FOREIGN KEY
Ein Fremdschlüssel stellt sicher, dass die teilnehmende(n) Spalte(n) nur Werte enthalten können, die auch in der/den referenzierten Spalte(n) der Mastertabelle vorhanden sind.Diese referenzierten Spalten werden oft als target column bezeichnet.Sie müssen der Primärschlüssel oder ein eindeutiger Schlüssel in der Zieltabelle sein.Für sie muss keine NOT NULL
-Beschränkung definiert sein, obwohl sie, wenn sie der Primärschlüssel sind, natürlich diese Einschränkung haben.
Die Fremdschlüsselspalten in der referenzierenden Tabelle selbst erfordern keine NOT NULL
-Einschränkung.
Ein einspaltiger Fremdschlüssel kann in der Spaltendeklaration mit dem Schlüsselwort REFERENCES
definiert werden:
... ,
ARTIFACT_ID INTEGER REFERENCES COLLECTION (ARTIFACT_ID),
Die Spalte ARTIFACT_ID
im Beispiel verweist auf eine gleichnamige Spalte in der Tabelle COLLECTIONS
.
Auf der Tabellenebene können sowohl einspaltige als auch mehrspaltige Fremdschlüssel definiert werden.Bei einem mehrspaltigen Fremdschlüssel ist die Deklaration auf Tabellenebene die einzige Option.Diese Methode ermöglicht auch die Bereitstellung eines optionalen Namens für die Einschränkung:
...
CONSTRAINT FK_ARTSOURCE FOREIGN KEY(DEALER_ID, COUNTRY)
REFERENCES DEALER (DEALER_ID, COUNTRY),
Beachten Sie, dass sich die Spaltennamen in der referenzierten Tabelle (“master”) von denen im Fremdschlüssel unterscheiden können.
Note
|
Wenn keine Zielspalten angegeben sind, verweist der Fremdschlüssel automatisch auf den Primärschlüssel der Zieltabelle. |