From: | Oswaldo Hernández <listas(at)soft-com(dot)es> |
---|---|
To: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Transaccion ID |
Date: | 2005-03-07 20:33:57 |
Message-ID: | 422CBAB5.8030407@soft-com.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Alvaro Herrera escribió:
> On Mon, Feb 21, 2005 at 11:30:30AM +0100, Oswaldo Hernández wrote:
>
> Hola,
>
>
>>Me gustaria saber si es posible obtener el ID de la transaccion actual
>>desde una funcion trigger.
>
>
> Me parece que directamente no, pero puedes hacer algo (dentro de la
> transaccion) como (untested)
>
> begin;
> ... algo de trabajo ...;
> create temp table getxid(a int) on commit drop;
> insert into getxid default values;
> select xmin from getxid limit 1;
> ... otro poco de trabajo ... ;
> commit;
>
> Ese xmin es el Xid de la transaccion en curso. Ojo, que ese numero
> cambia en subtransacciones!! En particular, si usas EXCEPTION en
> plpgsql o defines SAVEPOINTs, pueden crearse subtransacciones. Una vez
> que estas en ese terreno es dificil obtener una representacion correcta
> de la realidad de los Xids ...
>
Hola Alvaro,
Gracias por tu respuesta pero preferiria una solución sin necesidad de
hacer nada del lado del cliente.
He observado algo interesante en el comportamiento de pg_locks respecto
a esto y estoy investigando un poquito.
Gracias de nuevo.
--
*****************************************
Oswaldo Hernández
oswaldo(at)soft-com(dot)es
*****************************************
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2005-03-07 20:47:37 | Re: Transaccion ID |
Previous Message | Mario A. Soto Cordones | 2005-03-07 20:26:20 | Re: pg_restore |