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:
Thanks for your reply.
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.
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
Hi Alvaro,Erwin Moller wrote:I thought a transaction that is rolled back, rolls back *everything* done in that transaction. Appearantly sequences are not included.
Thanks for your reply.
Ok.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).
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.
No, I don't need gap-less numbering.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.
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 по дате отправления: