Re: Abort state on duplicated PKey in transactions

Started by Matthew T. O'Connorover 24 years ago1 messages
#1Matthew T. O'Connor
matthew@zeut.net

A solution, could be to query for the existance of the PK, just before the
insertion. But there is a little span between the test and the
insertion, where another insertion from another transaction could void
the existance test. Any clever ideas on how to solve this? Using
triggers maybe? Other solutions?

All you need to do is use a sequence. If you set the sequence to be the
primary key with a default value of nextval(seq_name) then you will never
have a collision. Alternatly if you need to know that number before you
start inserting you can select next_val(seq_name) before you inser and use
that. By the way the datatype serial automates exactly what I described.