" /> Password <br /><input type="password" name="passwd" id="passwd" class="inputbox" size="18" alt="password" />
Casa SQL chiave esterna
PDF

FOREIGN KEY - Un punto ad un altro tavolo PRIMARY KEY.

Guarda le due tabelle seguenti:

C'è una tabella "Persone":

P_IdCognomeNomeAddressCittà
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

C'è una tabella "Ordini":

O_IdOrderNoP_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

Commenti

 
+5 #1 Симо 2011-07-07 15:50 Tutorial molto utile. Solo ora mi sono reso conto che queste sono le chiavi esterne. Citazione
 
 
+3 #2 Sin 2011-08-14 17:32 Grazie per la lezione, solo due Domanda voznyklo:
1
2 s?
Citazione
 
 
+1 #3 pnz 2012-02-21 11:28
w3schools.com /.../...
Citazione
 

Autorizzazione

Nizza Ajax Sondaggio

Statistica

Pubblicità