Latest web development tutorials

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:

CREATE TABLE Orders
(
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:

CREATE TABLE Orders
(
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:

CREATE TABLE Orders
(
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:

ALTER TABLE Orders
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:

ALTER TABLE Orders
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:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS - Zugang:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders