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
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 |