Re: Transaccion ID

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Oswaldo Hernández <listas(at)soft-com(dot)es>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Transaccion ID
Date: 2005-03-07 16:52:27
Message-ID: 20050307165227.GC10184@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
Thou shalt study thy libraries and strive not to reinvent them without
cause, that thy code may be short and readable and thy days pleasant
and productive. (7th Commandment for C Programmers)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mario A. Soto Cordones 2005-03-07 17:06:15 Re: pg_restore
Previous Message Leonel Quinteros 2005-03-07 16:30:07 Re: Conectar a una base de datos y consultar datos de otra