SQL Fremdschlüssel
SQL Fremdschlüssel
Fremdschlüssel in einer Tabelle auf einen anderen Tisch Primärschlüssel.
Nehmen wir ein Beispiel verwenden, um die Fremdschlüssel zu erklären. Betrachten Sie die folgenden beiden Tabellen:
"Personen" Tabelle:
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
"Aufträge" Tabelle:
O_Id | OrderNo | P_Id |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 2 |
4 | 24562 | 1 |
Bitte beachten Sie, dass "Aufträge" Tabelle "p_id" Spalte Punkt "Personen" Tabelle "p_id" Spalte.
"Personen" Tisch "p_id" Spalte ist die "Personen" Tabelle Primärschlüssel.
"Orders" table "p_id" Spalte ist die "Orders" Tabelle Fremdschlüssel.
FOREIGN KEY Einschränkung verwendet werden, um Schäden an der Verbindung zwischen dem Verhalten der Tabelle verhindern.
FOREIGN KEY-Einschränkung verhindert auch illegale Daten in eine Fremdschlüsselspalte, muss es sein, weil es auf den Tisch verweist.
SQL FOREIGN KEY-Einschränkung CREATE TABLE, wenn
Die folgende SQL, wenn die "Orders" Tabelle erstellt eine FOREIGN KEY-Einschränkung auf den "p_id" Spalte zu erstellen:
MySQL:
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)
SQL Server / Oracle / MS - Zugang:
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)
Um FOREIGN KEY-Einschränkung zu nennen, und eine Vielzahl von Spalten FOREIGN KEY-Einschränkung zu definieren, verwenden Sie die folgende SQL-Syntax:
MySQL / SQL Server / Oracle / MS - Zugang:
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)
SQL FOREIGN KEY-Einschränkung ALTER TABLE, wenn
Wenn die "Orders" Tabelle hat für Spalten erstellt schaffen FOREIGN KEY-Einschränkung "p_id" finden Sie in der folgenden SQL verwenden:
MySQL / SQL Server / Oracle / MS - Zugang:
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
Um FOREIGN KEY-Einschränkung zu nennen, und eine Vielzahl von Spalten FOREIGN KEY-Einschränkung zu definieren, verwenden Sie die folgende SQL-Syntax:
MySQL / SQL Server / Oracle / MS - Zugang:
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
Rückgängig FOREIGN KEY-Einschränkung
Um eine FOREIGN KEY-Einschränkung zu löschen, verwenden Sie die folgende SQL:
MySQL:
DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS - Zugang:
DROP CONSTRAINT fk_PerOrders