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