Re: [pgsql-es-ayuda] Ejecutar sentencias fuera de transaccion en una función

From: Raidel Oceguera Ravelo <roceguera(at)estudiantes(dot)uci(dot)cu>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: Lista - PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>, Raúl Andrés Duque Murillo <ra_duque(at)yahoo(dot)com(dot)mx>, Silvio Quadri <silvioq(at)gmail(dot)com>
Subject: Re: [pgsql-es-ayuda] Ejecutar sentencias fuera de transaccion en una función
Date: 2009-11-05 18:34:12
Message-ID: 273322382.281611257446052288.JavaMail.root@ucimail4.uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola soy nuevo aqui y me gustaria saber como es que mandan mensajes a todos los participantes de este sitio, ademas necesito ayuda con un tema en especifco, ya que quiero conectar matlab con la BD de postgres y no tengo idea si existe alguna herramienta para hacerlo.
Gracias de Antemano.

Saludos Raidel

----- Mensaje original -----
De: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>
Para: "Silvio Quadri" <silvioq(at)gmail(dot)com>
CC: "Lista - PostgreSQL" <pgsql-es-ayuda(at)postgresql(dot)org>, "Raúl Andrés Duque Murillo" <ra_duque(at)yahoo(dot)com(dot)mx>
Enviados: Jueves, 5 de Noviembre 2009 9:13:16 (GMT-0500) Auto-Detected
Asunto: Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Ejecutar sentencias fuera de transaccion en una función

> El día 5 de noviembre de 2009 08:37, Raúl Andrés Duque Murillo
> <ra_duque(at)yahoo(dot)com(dot)mx> escribió:
> > Cordial Saludo.
> >
> > Tengo una función que incluye bastantes pasos y quisiera hacer un monitoreo
> > de cada acción grabando filas a una tabla de log. Cuando la función se
> > ejecuta sin errores todo perfecto pero si hay errores las entradas a la
> > tabla de log se pierden (porque están dentro de una transacción) ...
> > pensaría que no se puede pero podría ejecutar sentencias sin transacción
> > dentro de una función? Cómo podría implementarlo?

Puedes usar dblink para conectarte a la misma base de datos dentro de la
función y hacer la inserción. Obviamente es mucho más limpio si tienes
otra función que reciba la cadena, abra la conexión dblink, y la
inserte.

Como es una conexión aparte, es una transacción aparte, y así no
desaparece cuando tu transacción aborta.

Esto se conoce como "transacción autónoma" en otros ámbitos (Oracle?) y
no está implementado en Postgres.

--
Alvaro Herrera Vendo parcela en Valdivia:
http://www.portalinmobiliario.com/propiedades/fichas.asp?PropID=749682
"Uno combate cuando es necesario... ¡no cuando está de humor!
El humor es para el ganado, o para hacer el amor, o para tocar el
baliset. No para combatir." (Gurney Halleck)
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envía "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ing. Marcos Orti­z 2009-11-05 19:04:21 Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Ejecutar sentencias fuera de transaccion en una función
Previous Message PostgreSQL Project DR 2009-11-05 18:06:53 Re: PGDay Cuba 2010