Re: Timestamp como primary key

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Jorge Romeo <jromeo(at)samca(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Timestamp como primary key
Date: 2009-05-26 18:45:23
Message-ID: 20090526184523.GJ32650@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Jorge Romeo escribió:

> Lo que intento hacer es usar la fecha como identificador único de cada
> trama, ya que otros datos se pueden extraer de la cadena en bruto en
> caso necesario. Al insertar los datos, hago una consulta del tipo:
>
> INSERT INTO tramas_raw(trama) VALUES (<cadena debidamente convertida>);
>
> Esperaba que se insertara correctamente, ya que el tipo timestamp, al
> mostrarlo, se ve que tiene un montón de decimales, por lo que a la
> velocidad que se insertan los datos no debería ser posible que se
> repitieran los tiempos. En cambio, cuando empiezo a insertar me dice
> que violo la restricción.

El problema puede ser que now() está definida como el tiempo de inicio
de la transacción en curso, de modo que si intentas insertar dos
registros en una misma transacción, ambas tendrán el mismo valor y
obviamente fallará.

Quizás quieras definir DEFAULT statement_timestamp() en vez de now()

--
Alvaro Herrera http://www.amazon.com/gp/registry/3BP7BYG9PUGI8
"Crear es tan difícil como ser libre" (Elsa Triolet)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alejandro Flores 2009-05-26 18:58:40 Problema con OLE DB PROVIDER
Previous Message BhEaN 2009-05-26 18:32:42 Re: Diferencia entre indices btree, rtree y hash