From: | Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
Cc: | Diego Schulz <dschulz(at)gmail(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: RV: como obtener ultimo registro insertado |
Date: | 2010-07-09 14:13:33 |
Message-ID: | AANLkTimxBhy7G8I2dyNB5ex2VRTtUpqVZO5T-NToaQtE@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
>> CREATE TABLE tu_tabla (
>> -- ... columnas
>> estampa timestamp default now(),
>> -- ... mas columnas
>> );
>>
>> luego consultar con algo asi
>>
>> SELECT campo1, campo2, etc
>> FROM tu_tabla
>> ORDER BY estampa DESC
>> LIMIT 1;
>
> Esto no es confiable. Considera que en modo READ COMMITTED tu
> transacción verá los registros insertados por otra transacción que haya
> terminado primero que la tuya, sin importar que haya podido empezar
> después. El resultado sería que con esta consulta verías el registro de
> la otra transacción.
> -
Eso se solucionaría si agregas where xmin::text = txid_current()::text ?
Y en el caso de un delete-update usar xmax?
Vi algo raro, no se puede castear xmin a bigint, pero txid_current
devuelve bigint
(que tampoco se puede castear a xid). (estoy probando en un 8.4).
--
Emanuel Calvo Franco
www.emanuelcalvofranco.com.ar
Join: http://www.thevenusproject.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2010-07-09 16:20:25 | Re: RV: como obtener ultimo registro insertado |
Previous Message | Rodriguez Fernando | 2010-07-09 11:10:33 | Re: Error: conexion remota PostgreSQL |