FOREIGN KEY - Un punto ad un altro tavolo PRIMARY KEY.
Guarda le due tabelle seguenti:
C'è una tabella "Persone":
| P_Id | Cognome | Nome | Address | Città |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
C'è una tabella "Ordini":
| O_Id | OrderNo | P_Id |
|---|---|---|
| 1 | 77895 | 3 |
| 2 | 44678 | 3 |
| 3 | 22456 | 2 |
| 4 | 24562 | 1 |
Si noti che la colonna "P_Id" nella tabella "Ordini" indica "P_Id" nella tabella "Persone".
Il "P_Id" colonna nella tabella "Persone" è una chiave primaria.
Il "P_Id" colonna nella tabella "Ordini" è una chiave esterna.
FOREIGN KEY non consente di inserire dati non corretti nel "P_Id" colonna nella tabella "Ordini" e "Persone".
Vincoli FOREIGN KEY in SQL CREATE TABLE
L'SQL seguente crea una colonna FOREIGN KEY "P_Id", quando la creazione della tabella "Ordini":
MySQL:
CREATE TABELLA Ordini ( O_Id int NON NULL, OrderNo int NON NULL, P_Id int, PRIMARY KEY (O_Id), FOREIGN KEY (P_Id) BIBLIOGRAFIA Persone(P_Id) )
SQL Server / Oracle / MS Access:
CREATE TABELLA Ordini ( O_Id int NON NULL PRIMARY KEY, OrderNo int NON NULL, P_Id int FOREIGN KEY BIBLIOGRAFIA Persone(P_Id) )
È possibile distribuire la chiave esterna limitatore su più colonne, utilizzare la seguente sintassi SQL:
MySQL / SQL Server / Oracle / MS Access:
1 2 3 4 5 6 7 8 |
CREATE TABELLA Ordini( O_Id int NON NULL, OrderNo int NON NULL, P_Id int, PRIMARY KEY (O_Id), CONSTRAINT fk_PerOrdini FOREIGN KEY (P_Id) BIBLIOGRAFIA Persone(P_Id) ) |
SQL vincoli FOREIGN KEY in ALTER TABLE
L'SQL seguente crea una colonna FOREIGN KEY "P_Id", quando la tabella "Ordini" è già creato:
MySQL / SQL Server / Oracle / MS Access:
1 2 3 |
ALTER TABELLA Ordini ADD FOREIGN KEY (P_Id) BIBLIOGRAFIA Persone(P_Id) |
È possibile distribuire la chiave esterna limitatore su più colonne, utilizzare la seguente sintassi SQL:
MySQL / SQL Server / Oracle / MS Access:
1 2 3 4 |
ALTER TABELLA Ordini ADD CONSTRAINT fk_PerOrdini FOREIGN KEY (P_Id) BIBLIOGRAFIA Persone(P_Id) |
Rimozione di FOREIGN KEY
Per eliminare un vincolo FOREIGN KEY utilizzando i seguenti SQL:
MySQL:
1 2 |
ALTER TABELLA Ordini GOCCIA FOREIGN KEY fk_PerOrdini |
SQL Server / Oracle / MS Access:
1 2 |
ALTER TABELLA Ordini GOCCIA CONSTRAINT fk_PerOrdini |
SQL chiave esterna





Commenti
1
2 s? Citazione
w3schools.com /.../...
Citazione