From: | Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec> |
---|---|
To: | marcosrios(at)planet(dot)com(dot)pe |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Como usar ROLLBACK |
Date: | 2009-05-02 16:19:07 |
Message-ID: | 3073cc9b0905020919p7eb52a96u36f8d615d7dcaf87@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Wed, Apr 29, 2009 at 3:12 PM, <marcosrios(at)planet(dot)com(dot)pe> wrote:
> Estimada Lista,
>
> Tengo una funcion que me actualiza saldos de varios productos, le envio como
> parametros un nro de pedido y la funcion lee todos los productos
> relacionados con ese nro de pedido descontando uno a uno de la tabla de
> saldos la cantidad solicitada.
>
> Mi problema es que si alguna de las cantidades solicitadas excede al stock,
> la funcion debe hacer un ROLLBACK a los registros que previamente han sido
> procesados como validos dentro del mismo nro de pedido. He intentado ponerle
> un ROLLBACK, pero me devuelve un error y cuelga mi aplicativo.
>
eso es porque no puedes usar rollback dentro de una funcion...
que tal si pones un CHECK constraint en la tabla que vas a actualizar,
algo asi como: CHECK (stock_disponible >= 0), asi al actualizar y
quedar el valor menor a cero va a dar un error (usa una EXCEPTION para
manejar el error) y eso automaticamente hara un ROLLBACK
--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157
From | Date | Subject | |
---|---|---|---|
Next Message | Jorge Medina | 2009-05-02 19:24:14 | Re: Mondrian + Postgresql |
Previous Message | juan | 2009-05-02 14:04:29 | Re: Como usar ROLLBACK |