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