1452: Cannot add or update a child row: a foreign key constraint fails
MySQLO que significa?
Você está inserindo ou atualizando uma linha filha, mas o valor da chave pai para o qual ela aponta não existe na tabela referenciada; a constraint de foreign key a rejeita.
Por que acontece?
Um INSERT/UPDATE referenciando uma chave pai inexistente, dados carregados na ordem errada (primeiro o filho) ou uma linha pai excluída.
Como resolver
Insira primeiro a linha pai, depois a linha filha. Verifique se o valor referenciado existe: SELECT * FROM parent_table WHERE key_column = value. Preserve a ordem pai-filho em cargas em massa. Use SET FOREIGN_KEY_CHECKS=0 apenas em operações de manutenção controladas e volte para 1 ao terminar.