1
resposta

Uso do SET FOREIGN_KEY_CHECKS = 0

Alguém saberia me explicar melhor o porquê do uso do comando SET FOREIGN_KEY_CHECKS = 0;, porque pesquisei sobre ele mas vi algumas pessoas falando que seu melhor uso é em recuperação de backups, pois em aplicações o mesmo abre portas para anomalias/ataques.

Mesmo com essas informações, até agora não entendi o porquê de seu uso e se ele é mesmo necessário para toda inserção de dados em tabela com chave estrangeira.

1 resposta

Olá Giulia, tudo certo?

O uso do comando SET FOREIGN_KEY_CHECKS = 0 na hora da inserção se torna útil na liberdade de inserir dados.

O fluxo padrão da inserção de dados solicita que seja inserido os dados primeiro nas tabelas pais e depois em tabelas filhas, no entanto, nem todos os contextos conseguem obedecer à este fluxo, seja pela inserção de dados paralela dentro da equipe ou até mesmo em uma modelagem mais complexa do banco de dados com tabelas em que em uma relação é pai e em outra relação é filho.

Independente das razões, se seus dados são consistentes "desativar" ou "ativar" a chave estrangeira auxilia na inserção de dados em diversos casos, mas não é obrigatório quando o carregamento dos dados segue a ordem especificada na modelagem.

Espero te ajudado. Bons estudos =D