Trying ZODB, background in Relational: mimic auto_increment?

Jean-Paul Calderone exarkun at
Thu Aug 14 17:13:32 CEST 2008

On Thu, 14 Aug 2008 16:41:57 +0200, Thomas Guettler <hv at> wrote:
>auto increment:
>>Here's one way
>>    class Sequence(Persistence):
>>        def __init__(self):
>>            self.current = 0
>>        def next(self):
>>            self.current += 1
>>            return self.current
>>    ticketSequence = Sequence()
>>    class Ticket(Persistence):
>>        def __init__(self):
>>   =
>I am sorry, but this does not work if several threads or processes
>try to get a new id.
>Have a look at:
>"Resolving Conflicts".
>BTW, that's one of the points why I switched from ZODB to Postgres.

I'm not sure why you say it doesn't work and then link to the documentation
which both explains why it works and how to handle the cases where a
conflict might cause it to sometimes not work (retry or manually resolve).

PostgreSQL is great and makes sequences easier than ZODB does (at least
as far as I can tell), but it's hardly _impossible_ to have a working
sequence in ZODB, and it's not even difficult, it's just not trivial.


More information about the Python-list mailing list