| From: | marcosrios(at)planet(dot)com(dot)pe |
|---|---|
| To: | pgsql-es-ayuda(at)postgresql(dot)org |
| Cc: | jcasanov(at)systemguards(dot)com(dot)ec |
| Subject: | Re: Como usar ROLLBACK |
| Date: | 2009-05-04 15:25:28 |
| Message-ID: | 20090504102528.d17780y804w4w808@webmail.planet.com.pe |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-es-ayuda |
Estimado Jaime,
Te agradezco por tu sugerencia, hare los cambios y probare como resulta.
He probado con lo siguiente y logro el objetivo, sin embargo, me
cuelga el aplicativo.
-----
BEGIN
RAISE EXCEPTION 'No existe Saldo suficiente para atender el
producto --> %', reg_pedidos.cod_producto;
RETURN 0; --// No existe Saldo suficiente para atender el pedido //--
END;
-----
Saludos,
Marcos Rios R.
Quoting Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>:
> 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.
>
> 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
> --
> TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Alvaro Herrera | 2009-05-04 15:52:20 | Re: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] comportamiento extraño |
| Previous Message | suso | 2009-05-04 15:24:16 | SQLITE Y POSTGRESQL |