Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

danilotandrade

Probblema com Trigger after delete

Recommended Posts

Ola, sou novo no fórum e vai aqui minha dúvida.

Tenho em meu banco de dados uma tabela chamada cliente e uma tabela chamada endereco sendo que um cliente possui um endereco.

O meu problema é que na minha tabela cliente eu tenho uma trigger after delete para deletar o endereco do cliente quando o mesmo for deletado.

Segue abaixo o código da trigger:

 

USE `m2000`;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` TRIGGER `cliente_ADEL` AFTER DELETE ON `cliente` FOR EACH ROW
BEGIN
DELETE from endereco where cdEndereco = (
SELECT cdEndereco from cliente where cdCliente = old.cdCliente);
END
O problema é que quando eu deleto o cliente nada acontece, nem erro dá, simplesmente não deleta o endeço.
Se alguém puder me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://dev.mysql.com/doc/refman/5.6/en/innodb-foreign-key-constraints.html

 

Nestes casos talvez seja melhor usar a opção ON DELETE CASCADE da FK.

 

Não gosto de ideia de deletar fisicamente tabelas como de clientes prefiro opções como cancelamento, deleção lógica etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se é AFTER DELETE, o registro não existe mais, logo, seu SELECT para recuperar a informação não vai ter resultado algum.

 

Siga a ideia do Motta ou faça a trigger com BEFORE DELETE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.