MYSQL - Error Code: 1451. Cannot delete or update a Parent Row: a Foreign key Constraint fails

Asked

Viewed 1,596 times

-1

I have to make a Rigger, where when being excluded an employee will also be excluded his dependent. But I can not delete. the code was like this:

delimiter $

create trigger TRG_excluiDependente_AD
after delete 
on Funcionario
for each row
begin
    -- alter table Dependente drop foreign key ID_Func;
    delete from Dependente where Dependente.ID_Func = old.ID_Func;
end$    

delimiter ;

drop trigger TRG_excluiDependente_AD;
alter table Dependente DROP foreign key  fk_dep_func ;
delete from Funcionario where ID_Func = 4;

And returns me the title error,and I’ve removed the function->dependent FK

  • on the dependent table references the function? if yes you only put a "delete on Cascade" that solves your problem

  • yes, but the thing is I can’t use Scade

1 answer

0

I resolved

delimite $

create Trigger Trg_excluidependenteantes_bd -- -> BD Before delete (Antes) before delete on employee for each Row Begin

SET foreign_key_checks = 0;
delete from Dependente where Dependente.ID_Func = old.ID_Func;

end$

delimite ;

drop Trigger Trg_excluidependenteantes_bd; delete from Funcio Where Id_func = 1;


delimite $

create Trigger Trg_excluidependente_ad -- -> AD After delete (after deleting) after delete on employee for each Row Begin

SET foreign_key_checks = 1;

end$

delimite ;

Using this function that temporarily "cancels" foreign keys

Browser other questions tagged

You are not signed in. Login or sign up in order to post.