[firebase-br] ajuda simples com trigger

Renato Deggau rdeggau em gmail.com
Sex Jul 27 14:00:21 -03 2007


Colega,

se entendi o teu problema, apenas modifique o
" IF (NUMROWS > 0) THEN" para
" IF (NUMROWS > 1) THEN" - voce quer permitir a ocorrencia de 1 caso e não
quer 2, então 1 é permitido

Renato Deggau

On 7/27/07, Fabinho <gatascheguei em yahoo.com.br> wrote:
>
> 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/
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista