Re: RV: como obtener ultimo registro insertado

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/

In response to

Responses

Browse pgsql-es-ayuda by date

  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