Chave estrangeira

4 respostas
D

olá, gostaria de saber como faço pra apagar uma informação de uma tabela que possui chave estrangeira.
quando tento excluir o dado pela aplicação que estou desenvolvendo, dá um erro dizendo que a informação não pode ser apagada por conta da chave estrangeira. gostaria de saber como posso solucionar esse problema.

4 Respostas

Hebert_Coelho

Apague os dados da estrangeira e depois apague o dados que você quer.

Se não pode apagar os dados da tabela estrangeira você elimina o relacionamento fazendo algo do tipo: update minha_tabela set id_extrangeiro = null;

W

Verifique se você não possua nenhum registro apontando para este que você quer excluir.

Ex: se a tabela B se referencia a tabela A, verifique se na tabela B não existe nenhum registro se referenciando ao registro da tabela A. (Tendo em vista que você deseja deletar o registro da tabela A)

Luiz_Augusto_Prado

Daniele(java):
olá, gostaria de saber como faço pra apagar uma informação de uma tabela que possui chave estrangeira.
quando tento excluir o dado pela aplicação que estou desenvolvendo, dá um erro dizendo que a informação não pode ser apagada por conta da chave estrangeira. gostaria de saber como posso solucionar esse problema.

Seu sistema não deve ter sido programado para fazer tal exclusão.
Nesse caso, vc poderia sugerir ao usuário para excluir todos os registros relacionados a uma determinada chave estrangeira.

Mas se está desenvolvendo o sistema, e tem CERTEZA de que esses dados podem ser excluidos, a sugestão é criar as suas tabelas que permitam a deleção em cascata.

J

Qual SGDB esta usando? Como foi feita a modelagem? Por exemplo, se vc tiver uma tabela de CEP e outra de endereços, pode existir uma chave estrangeira relacionado 1 CEP a varios endereços: como excluir um CEP da tabela se ele estiver sendo usando em vários endereços? Por isso a importância da modelagem de seu DB e conhecimento do seu SGDB.

Criado 2 de outubro de 2012
Ultima resposta 2 de out. de 2012
Respostas 4
Participantes 5