Fórum Trigger estilo checkbox #49784
10/03/2005
0
Se conseguisse saber a linha que está sendo alterada, conseguiria fazer uma consulta na clausura where e pegar todos os registros menos o que foi alterado, mas não consegui.
Como faço uma trigger que altere todos os registros menos o que foi alterado?
Raserafim
Curtir tópico
+ 0Posts
11/03/2005
Fsflorencio
É um negócio meio difícil de implementar isto por triggers, pois se em algum evento update eu alterar o próprio registro ele ficaria em looping, a não ser que vc use um generator como uma espécie de semáforo (isto funciona), mas uma maneira melhor seria no evento before update pegar um generator e alterar este campo com o valor dele.
Então no seu select pegaria o registro que tiver o campo com o maior valor, ex:
select first 1 * from tabela
order by campo_que_recebe_generator desc
//seria conveniente criar um índice para este campo.
Qualquer coisa estamos aí. :D
Gostei + 0
11/03/2005
Afarias
if (new.campo<>old.campo and new.campo = -1) then update tabela set campo = 0 where codigo <> new.codigo;
onde código é um campo chave da tabela
T+
Gostei + 0
12/03/2005
Raserafim
e vale salientar que esta trigger, apesar de simples é bastante interessante.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)