Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite pessoal.
Estou com uma dúvida aqui. Tenho um banco com as tabelas associado, dependente, endereco e participa_grupo.
Associado possui chaves estrangeiras com endereco e as outras classes tem chaves estrangeiras com a associado.
Fiz um trigger before delete on associado for each row, pra que antes de apagar uma linha do associado, apague tbm nas outras tableas..
não sei se isso que quero fazer dá certo com o uso do trigger, por isso peço a ajuda de vocês.
Segue o trigger que fiz:
DELIMITER $
CREATE TRIGGER t_bef_del_Associado
BEFORE DELETE ON ASSOCIADO
FOR EACH ROW
BEGIN
DELETE FROM DEPENDENTE WHERE cpf_dependente = old.cpf_associado;
DELETE FROM ENDERECO WHERE (cep = old.Acep AND
rua = old.Arua AND
numero = old.Anumero AND
complemento = old.Acomplemento);
DELETE FROM PARTICIPA_GRUPO WHERE cpf_pg = old.cpf_associado;
END;delete from ASSOCIADO where cpf_associado='231.512.512-70';recebo uma mensagem de erro de que não é possível apagar por causa das chaves estrangeiras... creio eu que meu trigger não está funcionando, certo?
Queria a ajuda de vocês sobre isso.
Oi Motta, obrigado pelo tempo em me responder...
Tenho conhecimento do "ON DELETE CASCADE" para as tabelas mas realmente não tinha pensado que o trigger que fiz era basicamente a mesma coisa que isso.
A verdade é que preciso fazer um trigger como exemplo de uso no meu BD para uma disciplina na faculdade e havia pensado nesse, mas com o que você apontou não tem porque de faze-lo.
Obrigado.
http://www.devmedia.com.br/forum/como-deletar-registros-utilizando-o-cascade/30575