Re: Problema con commits y rollbacks en funciones

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Leonardo Garcia <go2leonardo(at)yahoo(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Problema con commits y rollbacks en funciones
Date: 2007-04-28 01:22:43
Message-ID: 20070428012243.GA5118@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Leonardo Garcia escribió:

> Actualmente estoy investigando sobre los commits en funciones de
> postgres y he encontrado algunos problemas, me gustaría contar con
> alguna manera de realizar commit dentro de funciones plpgsql pero no
> lo he logrado, según he leido en los archivos de la lista ésto no es
> posible.

No es posible.

> Me gustaría saber si alguno me puede dar una sugerencia para abordar
> este problema, tengo una función que realiza el llenado de una tabla y
> requiero que el mismo si es interrumpido por alguna causa sea guardado
> en la tabla hasta donde pudo llegar sin hacer rollback de la
> transacción.

No es posible.

La funcion o bien hace COMMIT, en cuyo caso "quedan insertados" todos
los valores que insertó, o bien hace ROLLBACK, en cuyo caso no queda
ninguno de los valores que insertó. Interrumpir la función en la mitad
equivale a hacer ROLLBACK.

FWIW si quieres llenar una tabla con numeros secuenciales es mucho mejor
asi:

insert into foo select * from generate_series(1, 10000000);

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-04-28 01:32:39 Re: postgresql-common con 8.2.4
Previous Message usuario anonimo 2007-04-28 01:20:11 Re: postgresql-common con 8.2.4