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.
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;
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)
[quote=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.[/quote]
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.
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.