2
respostas

Erro nao Excluindo Notas

Com o código abaixo (estou trabalhando na sucos_vendas):

DELETE nf FROM notas_fiscais nf
INNER JOIN tabela_de_clientes c
ON nf.cpf = c.cpf
WHERE c.idade <=18;

Obtenho o seguinte erro:

Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails (sucos_vendas.itens_notas_fiscais, CONSTRAINT itens_notas_fiscais_ibfk_2 FOREIGN KEY (NUMERO) REFERENCES notas_fiscais (NUMERO))

2 respostas

Utilizei o comando abaixo, que vi em outro tópico aqui do fórum:

SET FOREIGN_KEY_CHECKS = 0;

Dessa forma funcionou.

Alguem sabe me dizer se utilizando desta forma posso ter algum problema na BD?

O comando SET FOREIGN_KEY_CHECKS = 0 desativa temporariamente a verificação de integridade referencial no MySQL permitindo que as operações de inserção, atualização e exclusão sejam executadas mesmo que as chaves estrangeiras estejam violadas.

O possível problema de desativar a verificação de integridade referencial é que as operações de manipulação de dados (INSERT, UPDATE, DELETE) podem comprometer a consistência dos dados no banco de dados, resultando em relações inconsistentes entre as tabelas e dados corrompidos.

Além disso, quando a verificação é ativada novamente, os erros podem ser dificeis de identificar ou corrigir. É recomendável utilizar esse comando somente em situações especificas em que a integridade possa ser garantida futuramente.

Nesse seu caso, você deletou informações da tabela notas_fiscais, porém não deletou da tabela itens_notas_fiscais_ibfk_2, ao executar o comando SET FOREIGN_KEY_CHECKS = 1, você vai se deparar com o mesmo erro, e terá que incluir os registros na tabela notas_fiscais novamente, ou excluir os registros dos itens.