Re: Commit incremental

From: Jaime Casanova <jaime(at)2ndquadrant(dot)com>
To: Jose Maria Mencia Fernandez <jmencia(at)alimarket(dot)es>
Cc: POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Commit incremental
Date: 2013-08-30 11:45:14
Message-ID: CAJKUy5j4LfujdGnTD9adL2ag+RrY10Fr40jnH106tW4ChwaRLg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2013/8/30 Jose Maria Mencia <jmencia(at)alimarket(dot)es>:
> Buenos días a todos desde Madrid,
> les planteo mi siguiente problema: he codificado una funcion pl/pgsql
> que realiza diversos cambios sobre un cliente determinado (en diversas
> tablas). Tengo que ejecutarla para miles de clientes pero quisiera
> gestionar la transacción por cada uno de ellos de modo que si el proceso
> falla en alguno, los cambios sobre los anteriores se hayan efectuado. Si
> los proceso todos en una única función la transacción es sólo una y
> pierdo la posibilidad del commit individual.
> ¿Cómo puedo resolverlo? Sólo se me ocurre llamar a esta función en un
> bucle para cada uno de los clientes desde un proceso externo a la BD
> escrito en cualquier lenguaje de programación con el que pueda conectar
> a postgres.
>
> ¿Alguna solución más apropiada que no implique código externo al motor
> de postgres?
>

Llama a esa función usando dblink. Al usar dblink, cada llamada ocurrirá dentro
de su propia transacción.

http://www.postgresql.org/docs/9.2/static/dblink.html

--
Jaime Casanova www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación
Phone: +593 4 5107566 Cell: +593 987171157

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jose Maria Mencia 2013-08-30 12:08:54 Re: Commit incremental
Previous Message Jose Maria Mencia 2013-08-30 09:30:39 Commit incremental