SQL FOREIGN KEY Vincolo

SQL FOREIGN KEY Vincolo

FOREIGN KEY in una tabella punti ad un altro tasto tabella primaria.

Facciamo un esempio per spiegare la chiave esterna. Considerate i seguenti due tabelle:

tabella "Persone":

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

tabella "Ordini":

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 2
4 24562 1

Si prega di notare colonna della tabella, "Ordini" "P_Id" punto di colonna "Persone" tavolo "P_Id".

colonna "Persone" tavolo "P_Id" è il "Persone" KEY tabella primaria.

"Ordini" tavolo colonna "P_Id" è il "Ordini" FOREIGN KEY tavolo.

Vincolo FOREIGN KEY viene utilizzato per evitare di danneggiare il collegamento tra il comportamento del tavolo.

FOREIGN KEY vincolo impedisce anche i dati illegali in una colonna chiave esterna, deve essere uno perché punta al tavolo.


SQL vincolo FOREIGN KEY CREATE TABLE quando

Il seguente SQL quando la tabella "Ordini" è stato creato per creare un vincolo FOREIGN KEY sulla colonna "P_Id":

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 Access:

CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

Per citarne vincolo FOREIGN KEY, e definire una pluralità di vincolo colonna di chiave esterna, utilizzare la seguente sintassi SQL:

MySQL / SQL Server / Oracle / MS accesso:

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 vincolo FOREIGN KEY ALTER TABLE quando

Quando la tabella "Ordini" è stato creato per le colonne creare vincolo FOREIGN KEY "P_Id", si prega di utilizzare il seguente SQL:

MySQL / SQL Server / Oracle / MS accesso:

ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

Per citarne vincolo FOREIGN KEY, e definire una pluralità di vincolo colonna di chiave esterna, utilizzare la seguente sintassi SQL:

MySQL / SQL Server / Oracle / MS accesso:

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)


Annulla vincolo FOREIGN KEY

Per eliminare un vincolo FOREIGN KEY, utilizzare il seguente SQL:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders