From: | "Fernando Aguada" <fernandoaguada(at)yahoo(dot)com(dot)ar> |
---|---|
To: | <pgsql-es-ayuda(at)postgresql(dot)org>, "Chema Cortes" <chema(at)ls-l(dot)org> |
Subject: | Re: Validacion en un trigger |
Date: | 2005-02-25 15:05:19 |
Message-ID: | 000e01c51b4b$6f2b8f30$fa00a8c0@fernandoa |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola,
Gracias por tu respuesta, pero vos sabes que sigue haciendo lo
mismo,
yo supongo que la razon es que esta dentro de una transaccion, y por esa
razon
la validacion anda la primera vez, y luego me vuelve los registros a los
valores
originales y por ende no se valida la segunda vez.
Gracias de todos modos.
----- Original Message -----
From: "Chema Cortes" <chema(at)ls-l(dot)org>
To: "Fernando Aguada" <fernandoaguada(at)yahoo(dot)com(dot)ar>
Sent: Friday, February 25, 2005 9:55 AM
Subject: Re: [pgsql-es-ayuda] Validacion en un trigger
Fernando Aguada escribió:
> Hola Tengo el siguiente problema: Cuando se inserta un registro en
> una tabla, que en este caso se llama bancos se dispara un trigger que
> realiza validaciones, todo se ejecuta bien, menos cuando hace una
> validacion sobre otra tabla que se llama cheques y valida que los
> cheques dados de baja coincidan con el total, debo aclarar que antes
> de agregar un registro en la tabla principal hago un* begin*, es como
> que los registros en la tabla de cheques de tercero desaparecen
> despues de ejecutarse la validacion la primera vez, si alguien tiene
> una idea? el codigo es el siguiente
>
> *select count(*) into wrec from chequest where ctracom=new.cnumtra
> and cori='B'; if wrec>00 then select sum(cimpo) into wsuma from
> chequest where ctracom=new.cnumtra and cori='B';* ** * if
> wsuma<>new.cimpcht then raise exception 'La Suma de Cheques
> Ingresados No Concide con el Importe * *
> en Cheques'; end if; end if; *
Creo que estás confundiendo el 'SELECT..INTO <table>' del SQL con el
'SELECT INTO <target>' del PL/pgSQL
Prueba con
select into wrec count(*) from chequest where ctracom=new.cnumtra and
cori='B';
if wrec>00 then
select into wsuma sum(cimpo) from chequest where ctracom=new.cnumtra
and cori='B';
if wsuma<>new.cimpcht then
raise exception 'La Suma de Cheques Ingresados No Concide con el
Importe en Cheques';
end if;
end if;
From | Date | Subject | |
---|---|---|---|
Next Message | marcos negrini | 2005-02-25 15:22:26 | Re: postgres 8.0.1 win32 |
Previous Message | Fernando Aguada | 2005-02-25 14:44:50 | Re: postgres 8.0.1 win32 |