Adicionar chave estrangeira

Chave estrangeira (foreign key) é o campo que estabelece o relacionamento entre duas tabelas. Assim, uma coluna corresponde à mesma coluna que é a chave primária de outra tabela. Dessa forma, deve-se especificar na tabela que contém a chave estrangeira quais são essas colunas e à qual tabela está relacionada. O banco de dados irá verificar se todos os campos que fazem referências à tabela estão especificados.

Relacionamento e integridade referencial

Determinar esse tipo de relacionamento, fica garantida a integridade das informações. Os valores presentes nas clunas definidas como chave estrangeira devem ter um correspondente em outra tabela, caso contrário o bando de dados deve retornar uma mensagem de erro, assim as restrições de chave estrangeira identificam os relacionamentos entre tabelas e assegura que a integridade referencial seja mantida.

Constraints

Constraints são regras agregadas a colunas ou tabelas. Assim, pode-se definir como obrigatório o preenchimento de uma coluna que tenha um valor-padrão quando uma linha for incluída na tabela ou quando aceitar apenas alguns valores pre-definidos. No caso de regras aplicadas a tabelas, tem-se a definição de chaves primárias e estrangeiras.

No post anterior, nós vimos como criar tabelas utilizando o Sql Server Management Studio e também revisamos como criar uma tabela e index utilizando o Create Table e Create Index. Agora, após criadas as tabelas, podemos alter e adicionar uma Foreign Key (o relacionamento)

Tabelas: Cidade, Estado e Fabricante.


Alter table 
  cliente 
add 
  constraint fk_cliente_cidade foreign key (cidade) references cidade (id_cidade) 
  
Alter table 
  cliente 
add 
  constraint fk_clientte_estado foreign key (estado) references estado (id_estado) 
  
Alter table 
  produto 
add 
  constraint fk_fabricante foreign key (nome_fabricante) references fabricante(id_fabricante)

Excluir cheve estrangeira

Mais uma vez, uma chave estrangeira é muito importente. É ela que vai fazer referencia (relacionamento com outra). Antes de tudo, analise a estrutura da tabela, não poderá excluir uma chave estrangeira se o compo da tabela referenciada estiver preenchida.


Alter table 
  cliente 
drop 
  constraint fk_cliente_cidade 
  
Alter table 
  cidade 
drop 
  constraint fk_cidade_estado 
  
Alter table 
  cliente 
drop 
  constraint fk_cliente_estado

Tomamos conhecimento de como criar um relacionamento entre tabelas e a grande importância da integridade referencial. Até a próxima.

Confira também