| 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: | Whole Thread | Raw Message | 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 |