Ir para conteúdo

POWERED BY:

Arquivado

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

fael

Trigger

Recommended Posts

Buenas gurizada!

 

Alguém sabe como criar uma trigger que dê um update em uma tabela antes que o delete seja executado?

 

Por exemplo:

 

Tabela 1

------------------

Codigo

Nome

Codigo_Tabela2

 

 

Tabela 2

------------------

Codigo

Nome

 

Quando eu deletar um registro da Tabela 2, que tem referenciamento com a Tabela 1, eu quero que mova todos aqueles registros da Tabela 1 que tiverem atrelados a um registro que está sendo deletado para um registro específico que não poderá ser deletado, que neste caso seria 1.

 

Eu consegui fazer, mas dessa forma está movendo todos os registros da Tabela 1 para esse registro específico, mas eu quero que mova somente os registros que estão atrelados esse registro da Tabela 2. A Trigger ficou assim:

 

CREATE TRIGGER deleteCategoryMaterial ON categoriesMaterials AFTER DELETE AS UPDATE materials SET idCategory=1

Obrigado! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites
Cara, nenhum dos links me ajudou. Tens uma solução?Valeu! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Putz leu todos???? rápido hein..., postei 15:30 e 15:41 tu respondeu que nenhum ajudou?... tenta ler com atenção e calma que com ctz as coisas vão clarear .... dai se mesmo assim tiver alguma dúvida retorna aeabst++

Compartilhar este post


Link para o post
Compartilhar em outros sites
Cara, nenhum dos links me ajudou. Tens uma solução?Valeu! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Putz leu todos???? rápido hein..., postei 15:30 e 15:41 tu respondeu que nenhum ajudou?... tenta ler com atenção e calma que com ctz as coisas vão clarear .... dai se mesmo assim tiver alguma dúvida retorna aeabst++
:lol: hahahahahaha... então tu acha que eu to mentindo? Cara, eu já pesquisei antes de tu responder e coincidentemente já tinha passado pelos links que você indicou e realmente nenhum tem um exemplo do que eu preciso. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Se puder me ajudar agradeceria enormemente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu consegui chegar nisso:

 

CREATE TRIGGER deleteCategoryMaterial ON categoriesMaterials AFTER DELETE AS UPDATE materials SET idCategory=1 WHERE idCategory IN ((SELECT 0 						   FROM DELETED))

A lógica aparentemente está certa, mas não rolou. Sabe me dizer se tiver um índice entre essas tabelas funciona sem problema? Porque ele vai, na verdade, deletar um registro né. E se tem índice, ele não deleta.

 

Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

:lol: hahahahahaha... então tu acha que eu to mentindo? Cara, eu já pesquisei antes de tu responder e coincidentemente já tinha passado pelos links que você indicou e realmente nenhum tem um exemplo do que eu preciso. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Se puder me ajudar agradeceria enormemente!

não acho nada, só fiz uma pergunta, pois você não disse antes que coincidentemente tinha lido todos os links que passei, mas vamos concentrar no problema, tenta trocar o select 0 por select idCategory, pois se deixar fixo zero sempre vai fazer update na chave 0 isso se ela existir, então pelo contexto ai acredito que deva ser usado a(s) chave(s) do(s) registro(s) deletado(s) que fica(m) na tabela temporária DELETED, conforme explicam os links acima:

CREATE TRIGGER deleteCategoryMaterial ON categoriesMaterials  AFTER DELETE AS  UPDATE materials SET idCategory=1 WHERE idCategory IN ((SELECT idCategory 							FROM DELETED))
t++

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.