[firebase-br] Erro Trigger Insert Or Update - Firebird 2.1

Eduardo Belo beloelogica em gmail.com
Ter Ago 3 12:33:30 -03 2010


Funcionou!. Obrigado a Neodir e Ivan.

Em 3 de agosto de 2010 11:17, Eduardo Belo <beloelogica em gmail.com> escreveu:

> Olá Pessoal!
>
> O objetivo da Trigger abaixo é evitar CPF e MATRICULA em duplicidade, só
> pode aceitar CPF com Matriculas distintas, exemplo:
>
> CPF: 111.111.111-11 - MATRICULA: 123456
> CPF: 111.111.111-11 - MATRICULA: 999999
>
> No Insert está Ok, mas no Update está passando. O que há de errado nesse
> código?
>
> CREATE OR ALTER TRIGGER TRG_CPF_MATRICULA_JA_EXISTE FOR USUARIOS
> ACTIVE BEFORE INSERT OR UPDATE POSITION 0
> AS
> BEGIN
>  IF (INSERTING) THEN
>    IF (EXISTS
>         (SELECT USUARIOS.CPF,USUARIOS.MATRICULA FROM USUARIOS
>         WHERE USUARIOS.CPF=NEW.CPF AND USUARIOS.MATRICULA=NEW.MATRICULA))
> THEN
>          EXCEPTION CPF_MATRICULA_JA_EXISTE;
>  IF (UPDATING) THEN
>     IF (OLD.CPF<>NEW.CPF AND OLD.MATRICULA<>NEW.MATRICULA) THEN
>      IF (EXISTS
>         (SELECT USUARIOS.CPF,USUARIOS.MATRICULA FROM USUARIOS
>         WHERE USUARIOS.CPF=NEW.CPF AND USUARIOS.MATRICULA=NEW.MATRICULA))
> THEN
>          EXCEPTION CPF_MATRICULA_JA_EXISTE;
> END
>
> Obrigado a todos que ajudarem.
>
>



Mais detalhes sobre a lista de discussão lista