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:
(
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:
(
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:
(
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:
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:
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:
DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:
DROP CONSTRAINT fk_PerOrders