Não é uma boa ideia definir uma restrição de chave estrangeira como 0, porque se você fizer isso, seu banco de dados não garantirá que não esteja violando a integridade referencial. Isso pode levar a dados imprecisos, enganosos ou incompletos.
Você cria uma chave estrangeira por um motivo: porque todos os valores na coluna filho devem ser iguais a um valor na coluna pai. Se não houver restrições de chave estrangeira, uma linha filha pode ter um valor que não esteja na linha pai, o que levaria a dados imprecisos.
Por exemplo, digamos que você tenha um site para os alunos fazerem login e todos os alunos devem se registrar em uma conta como usuário. Você tem uma tabela para os IDs do usuário, com o ID do usuário como chave primária; e outra tabela para contas de alunos, com o ID do aluno como uma coluna. Como todo aluno deve ter um ID de usuário, faria sentido transformar o ID do aluno da tabela de contas do aluno em uma chave estrangeira que faça referência ao ID do usuário da chave primária na tabela de IDs do usuário. Se não houver verificação de chave estrangeira, um aluno pode acabar tendo um ID de estudante e nenhum ID de usuário, o que significa que um aluno pode obter uma conta sem ser um usuário, o que está errado.
Imagine se isso acontecer com uma grande quantidade de dados. É por isso que você precisa da verificação de chave estrangeira.
É melhor descobrir o que está causando o erro. Provavelmente, você está tentando excluir de uma linha pai sem excluir de uma linha filho. Tente excluir da linha filho antes de excluir da linha pai.