Re: Abort state on duplicated PKey in transactions

Поиск
Список
Период
Сортировка
От Matthew T. O'Connor
Тема Re: Abort state on duplicated PKey in transactions
Дата
Msg-id 002201c13882$63f83780$0b01010a@zeut
обсуждение исходный текст
Ответ на Abort state on duplicated PKey in transactions  (Haroldo Stenger <hstenger@adinet.com.uy>)
Список pgsql-hackers
> 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.



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Haroldo Stenger
Дата:
Сообщение: Abort state on duplicated PKey in transactions
Следующее
От: Haroldo Stenger
Дата:
Сообщение: Re: Abort state on duplicated PKey in transactions