FOREIGN KEY - Uma pontos tabela para outra PRIMARY KEY.
Olhe para os dois seguintes tabelas:
Existe uma tabela "Pessoas":
| P_ID | Sobrenome | FirstName | Address | Cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Existe uma tabela "Ordens":
| O_id | OrderNo | P_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 |
SQL Foreign Key





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