Re: timestamp as primary key? - Mailing list pgsql-general

From John D. Burger
Subject Re: timestamp as primary key?
Date
Msg-id 02D2DC33-6383-46EF-BF53-4F64423DE2DB@mitre.org
Whole thread Raw
In response to Re: timestamp as primary key?  (Tomasz Ostrowski <tometzky@batory.org.pl>)
Responses Re: timestamp as primary key?
List pgsql-general
cckramer wrote:

> I have table for online chat system that keep messages sent between
> users.

> Question: is it okay to use timestamp as primary key, or there is
> possibility of collision? (Meaning two processes may INSERT into table
> within same millisecond.) It is a web application.

tometzky wrote:

> If your insert fail you can always try again after some random short
> time.

But then the timestamp field does not accurately represent the actual
time of the event.  If you really want a primary key, and you really
don't want to just use a sequence default, I would make the key a
composite:

   PRIMARY KEY (user_id_from, user_id_to, message_time)

This should cut way down on the possibility of key collision.

- John D. Burger
   MITRE


pgsql-general by date:

Previous
From: Richard Huxton
Date:
Subject: Re: Overload after some minutes, please help!
Next
From: Ray Stell
Date:
Subject: Re: hardware failure - data recovery