MySQL FOREIGN KEY- Einschränkung
MySQL FOREIGN KEY-Einschränkung
Die FOREIGN KEY
Einschränkung wird verwendet, um Aktionen zu verhindern, die Verknüpfungen zwischen Tabellen zerstören würden.
A FOREIGN KEY
ist ein Feld (oder eine Sammlung von Feldern) in einer Tabelle, das auf das PRIMARY KEY
in einer anderen Tabelle verweist.
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.
Sehen Sie sich die folgenden beiden Tabellen an:
Personentabelle
PersonID | LastName | FirstName | Age |
---|---|---|---|
1 | Hansen | Ola | 30 |
2 | Svendson | Tove | 23 |
3 | Pettersen | Kari | 20 |
Bestelltabelle
OrderID | OrderNumber | PersonID |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 2 |
4 | 24562 | 1 |
Beachten Sie, dass die Spalte „PersonID“ in der Tabelle „Bestellungen“ auf die Spalte „PersonID“ in der Tabelle „Personen“ verweist.
Die Spalte "PersonID" in der Tabelle "Personen" ist die PRIMARY KEY
in der Tabelle "Personen".
Die Spalte "PersonID" in der Tabelle "Bestellungen" ist eine
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 um einen der in der übergeordneten Tabelle enthaltenen Werte handeln muss.
FREMDSCHLÜSSEL auf CREATE TABLE
Die folgende SQL erstellt eine FOREIGN KEY
in der Spalte „PersonID“, wenn die Tabelle „Orders“ erstellt wird:
CREATE TABLE Orders
(
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
Verwenden Sie die folgende SQL-Syntax, um die Benennung einer FOREIGN KEY
Einschränkung zu ermöglichen und eine Einschränkung für mehrere Spalten zu definieren :
FOREIGN KEY
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)
);
FREMDSCHLÜSSEL auf ALTER TABLE
Verwenden Sie die folgende SQL, um eine FOREIGN KEY
Einschränkung für die Spalte „PersonID“ zu erstellen, wenn die Tabelle „Orders“ bereits erstellt wurde:
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
Verwenden Sie die folgende SQL-Syntax, um die Benennung einer FOREIGN KEY
Einschränkung zu ermöglichen und eine Einschränkung für mehrere Spalten zu definieren :
FOREIGN KEY
ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
DROP a FOREIGN KEY Constraint
Um eine FOREIGN KEY
Einschränkung zu löschen, verwenden Sie die folgende SQL:
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;