[firebase-br] ajuda simples com trigger

Fabinho gatascheguei em yahoo.com.br
Sex Jul 27 13:44:02 -03 2007


Senhores, boa tarde

A trigger abaixo serve para verificar se não existem valores iguais no campo USUAR_APELIDO, em toda a tabela. Ela dispara uma expection caso o valor seja repetido.. funciona como se fosse um campo UNIQUE, certo?

Mas acontece que, se eu altero outros campos, na hora do post, ele dispara a exception, porque ele busca o valor nesse mesmo registro também. segue exemplo

tabela usuários
codigo        apelido        nome
1                joão            joão da silva
2                mario          Tissiane Souza
3                maria            Pedro Alcântara


quando altero, por exemplo, o nome do joão da silva, ele dispara a exception chamada pela trigger abaixo:


CREATE TRIGGER TRIGG_USUARIODUPLICADO FOR USUARIO
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
DECLARE VARIABLE NUMROWS INTEGER;
BEGIN
 SELECT COUNT(*) FROM USUARIO
 WHERE NEW.USUAR_APELIDO = usuar_apelido
 INTO :NUMROWS;
 IF (NUMROWS > 0) THEN
 EXCEPTION excep_usuarioduplicado;
END


O que faço para ele buscar o valor na tabela toda, menos no registro atual?


grato!


      Alertas do Yahoo! Mail em seu celular. Saiba mais em http://br.mobile.yahoo.com/mailalertas/


Mais detalhes sobre a lista de discussão lista