" /> " /> JoomThumbnail
Casa SQL Foreign Key

FOREIGN KEY - Uma pontos tabela para outra PRIMARY KEY.

Olhe para os dois seguintes tabelas:

Existe uma tabela "Pessoas":

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

Existe uma tabela "Ordens":

O_idOrderNoP_ID
1 77895 3
2 44678 3
3 22456 2
4 24562 1

Note que a coluna "P_ID" na tabela "Ordens" indica "P_ID" na tabela "Pessoas".

A coluna "P_ID" na tabela "Pessoas" é uma PRIMARY KEY.

A coluna "P_ID" na tabela "Ordens" é uma chave estrangeira.

FOREIGN KEY não permite inserir dados incorretos na coluna "P_ID" na tabela "Pedidos" e "Pessoas".

SQL FOREIGN KEY no comando CRIAR TABLE

O SQL a seguir cria uma coluna FOREIGN KEY "P_ID", ao criar a tabela "Ordens":

MySQL:

CRIAR TABELA Ordens (
O_id int NÃO NULL,
OrderNo int NÃO NULL,
P_ID int,
PRIMARY KEY (O_id),
FOREIGN KEY (P_ID) Referências Pessoas(P_ID)
)

SQL Server / Oracle / MS Access:

CRIAR TABELA Ordens (
O_id int NÃO NULL PRIMARY KEY,
OrderNo int NÃO NULL,
P_ID int FOREIGN KEY Referências Pessoas(P_ID)
)

Você pode distribuir o limitador CHAVE ESTRANGEIRA em várias colunas, usar o SQL seguinte sintaxe:

MySQL / SQL Server / Oracle / MS Access:

1
2
3
4
5
6
7
8
CRIAR TABELA Ordens(
O_id int NÃO NULL,
OrderNo int NÃO NULL,
P_ID int,
PRIMARY KEY (O_id),
CONSTRAINT fk_PerOrdens FOREIGN KEY (P_ID)
Referências Pessoas(P_ID)
)

SQL restrições FOREIGN KEY em ALTER TABLE

O SQL a seguir cria uma coluna FOREIGN KEY "P_ID", quando o "Ordens" tabela já está criado:

MySQL / SQL Server / Oracle / MS Access:

1
2
3
ALTER TABELA Ordens
ADD FOREIGN KEY (P_ID)
Referências Pessoas(P_ID)

Você pode distribuir o limitador CHAVE ESTRANGEIRA em várias colunas, usar o SQL seguinte sintaxe:

MySQL / SQL Server / Oracle / MS Access:

1
2
3
4
ALTER TABELA Ordens
ADD CONSTRAINT fk_PerOrdens
FOREIGN KEY (P_ID)
Referências Pessoas(P_ID)

Remoção da chave estrangeira

Para excluir uma restrição FOREIGN KEY usando o seguinte SQL:

MySQL:

1
2
ALTER TABELA Ordens
GOTA FOREIGN KEY fk_PerOrdens

SQL Server / Oracle / MS Access:

1
2
ALTER TABELA Ordens
GOTA CONSTRAINT fk_PerOrdens

 
+5 #1 Симо 2011-07-07 15:50 Um monte de Lições Úteis. Chuck E moinho Sega Claramente um parágrafo auto kakvo tezi vnshni klyuchove.
 
 
+3 #2 Sin 2011-08-14 17:32 Obrigado Pela Lição, havia apenas Duas Questões:
1
2 s?
 
 
+1 #3 pnz 2012-02-21 11:28
w3schools.com /.../...
 

Autorização

Bom Ajax Poll

Que uma das minhas extensões é o melhor?

Estatística

Anúncio