1
resposta

SET FOREIGN_KEY_CHECKS = 0

Conforme solicitado em exercício anterior, fiz set de chave estrangeira voltar a funcionar e quando tentei excluir o livro de id 8, apareceu a seguinte mensagem. Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails (clube_do_livro.estoque, CONSTRAINT fk_estoque_livros FOREIGN KEY (id_livro) REFERENCES livro (id_livro))

O que eu fiz foi setar novamente para 0 pra poder alterar.

1 resposta

Oi Joyce, tudo bem?

Esse erro aconteceu por causa da restrição ativada, SET FOREIGN_KEY_CHECKS = 1. Como estamos fazendo alteração em uma tabela pai "Livro" o erro nos lembra de conexões com outras possíveis tabelas filhas. Nesse caso, o livro de id 8 já possui registro na tabela "Vendas", por isso é gerado um erro já que estamos retirando um livro que não terá mais essa ligação com a tabela alterada.

O intuito da aula é aprender a sintaxe do comando DELETE, no entanto, em um cenário da vida real e coorporativa, precisamos avaliar esse erro. Será que é preciso excluir a linha da tabela assim como pediram? Qual o impacto disso da modelagem do banco de dados? Temos alternativas para essa exclusão?

Fico feliz que tenha avaliado o erro e inserido o comando de restrição para prosseguir com a exclusão da linha. Espero também ter contribuído com reflexões sobre o erro dentro desta perspectiva.

Bons estudos =)