Re: Sequences change in a rolled-back transactions

Поиск
Список
Период
Сортировка
От Erwin Moller
Тема Re: Sequences change in a rolled-back transactions
Дата
Msg-id 49B5385E.5040102@darwine.nl
обсуждение исходный текст
Ответ на Re: Sequences change in a rolled-back transactions  (Alvaro Herrera <alvherre@commandprompt.com>)
Список pgsql-general
Alvaro Herrera schreef:
Erwin Moller wrote:
 
I thought a transaction that is rolled back, rolls back *everything*  
done in that transaction.
Appearantly sequences are not included.   
 
Hi Alvaro,

Thanks for your reply.

Yes.  This is actually a desirable property, because it allows sequences
to work fine in concurrent scenarios (which are, after all, the whole
point of sequences). 
Ok.
I think I understand what you mean.

Scenario:
1) I start my transaction in which I call nextval(etc.etc).
2) Some other process/person has to wait for that transaction to end to get its own new sequencenumber.

That would surely be not desirable now I think of it. :-)
So Postgres developers decided to hand them out immediately, since nothing of real value has changed in the db, and they are just incremental numbers.


If you actually need an incremental number with no gaps (which is rare
but not unseen), you need to use some other mechanism, which will
probably involve a lock to prevent concurrency. 
No, I don't need gap-less numbering.
In (almost all) situations I use sequences it is simply to generate unique PKs for some table, so I don't care for gaps in the numbering.

I just thought I hitted some stange bug. ;-)

Thanks for your time.

Regards,
Erwin Moller

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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: Sequences change in a rolled-back transactions
Следующее
От: Lew
Дата:
Сообщение: Re: open up firewall from "anywhere" to postgres ports?