Ir para conteúdo

POWERED BY:

Arquivado

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

InSoNiA

Trigger

Recommended Posts

Olá pessoal, estou fazendo alguns testes aqui com triggers, garaças a essa maravilha que foi implementada na versão 5 do MySQL, porém já li algumas dicas e tutoriais e não encontrei o que preciso.

 

A situação é a seguinte:

 

Tenho uma SUBCATEGORIA de produtos e ao excluir esta SUBCATEGORIA deverão ser excluidos todos os produtos a ela RELACIONADOS.

Dessa forma usei um BEFORE para que todos os produtos sejam apagados antes de que a subcategoria seja APAGADA.

 

Fiz assim:

 

CREATE TRIGGER tr_sub1 BEFORE DELETE ON subcategorias
FOR EACH ROW
  BEGIN
	DELETE FROM produtos WHERE produtossubcategorias_id = 1;
  END

Observem que onde está 1 coloquei para fazer um teste onde deu CERTO, porém o que preciso ai é passar o ID da subcategoria que SERÁ deletada.

Caso não seja possível pegar a categoria que será DELETADA posso usar um AFTER e pegar o ID da última SUBCATEGORIA que foi deletada.

 

Espero ter sido claro em minha colocação e espero que isso seja possível.

 

Abs,

InSoNiA

 

P.S.: Gostaria de fazer uma indicação aqui sobre o Workbench, trabalhei por muito tempo com MySQl de forma não tão aprofundada, e agora com projetos mais robustos busquei e encontrei esta ferramenta que é realmente uma MÃO NA RODA!

 

Para quem ainda não conhece aqui fica minha indicação MySQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal fiz um teste dessa forma:

 

CREATE TRIGGER tr_sub1 BEFORE DELETE ON subcategorias
FOR EACH ROW
  BEGIN
	DELETE FROM produtos WHERE produtossubcategorias_id = OLD.id;
  END

Alguem pode só confirmar e ver se eu não estou fazendo nada errado, pois não entendi o lance do OLD.id, pois o id que queria passar é o da tabela SUBCATEGORIAS, mas deu certo então sei-la né HUAHUha. Por via das dúvidas é melhor perguntar!

 

Se alguem puder explicar(brevemente) o lance do OLD.

 

Vlw

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.