Foreign Key

0

SQL FOREIGN KEY Einschränkung

Die FOREIGN KEY Einschränkung wird verwendet, um Aktionen zu verhindern, die Verknüpfungen zwischen Tabellen zerstören würden.

Die Tabelle mit dem Fremdschlüssel wird als untergeordnete Tabelle bezeichnet, und die Tabelle mit dem Primärschlüssel wird als referenzierte oder übergeordnete Tabelle bezeichnet.

Schauen Sie sich die folgenden beiden Tabellen an:

Personentabelle

PersonIDLastNameFirstNameAge
1HansenOla30
2SvendsonTove23
3PettersenKari20

Tabelle „Bestellungen“

OrderIDOrderNumberPersonID
1778953
2446783
3224562
4245621

Beachten Sie, dass die Spalte „PersonID“ in der Tabelle „Orders“ auf die Spalte „PersonID“ in der Tabelle „Personen“ verweist.

Die Spalte „PersonID“ in der Tabelle „Personen“ ist der PRIMARY KEY in der Tabelle „Personen“.

Die Spalte „PersonID“ in der Tabelle „Bestellungen“ ist ein FOREIGN KEY in der Tabelle „Bestellungen“.

Die FOREIGN KEY Einschränkung verhindert, dass ungültige Daten in die Fremdschlüsselspalte eingefügt werden, da es sich dabei um einen der in der übergeordneten Tabelle enthaltenen Werte handeln muss.

SQL FOREIGN KEY bei CREATE TABLE

Das folgende SQL erstellt einen FOREIGN KEY für die Spalte „PersonID“, wenn die Tabelle „Orders“ erstellt wird:

MySQL:

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

SQL Server / Oracle / MS Access:

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

Um die Benennung einer FOREIGN KEY Einschränkung zu ermöglichen und eine FOREIGN KEY Einschränkung für mehrere Spalten zu definieren, verwenden Sie die folgende SQL Syntax:

MySQL / SQL Server / Oracle / MS Access:

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)
);

SQL FOREIGN KEY für ALTER TABLE

Um eine FOREIGN KEY Einschränkung für die Spalte „PersonID“ zu erstellen, wenn die Tabelle „Orders“ bereits erstellt wurde, verwenden Sie das folgende SQL:

MySQL / SQL Server / Oracle / MS Access:

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

Um die Benennung einer FOREIGN KEY Einschränkung zu ermöglichen und eine FOREIGN KEY Einschränkung für mehrere Spalten zu definieren, verwenden Sie die folgende SQL Syntax:

MySQL / SQL Server / Oracle / MS Access:

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

DROP eine FOREIGN KEY Einschränkung

Um eine FOREIGN KEY Einschränkung zu löschen, verwenden Sie das folgende SQL:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;
Nach oben scrollen