In mysql you can declare a integer column to be auto_increment and it
will handle for you giving each row a different number. Other
databases have similar mechanisms. It sounds like the invoice number
is the primary key for the invoice table? If you have a integer
primary key in sqlalchemy, it assumes that you want to make it auto
increment so this should all happen automatically.

On Tue, Jun 24, 2008 at 10:13 AM,  <[EMAIL PROTECTED]> wrote:
>
> hi
> lets have, say, invoice-numbers.
> a completely new invoice has new invoice-number.
> same invoice may have many versions - the invoice-number does not
> change.
>
> how to safely generate a new number for each new document (lets say it
> is simple number-incrementing)?
>
> one safe and simple way i've just invented is to have a separate table
> of one column - the invoice-numbers - and have a foreign key to it.
> First version of new invoice will create a row in the table and link
> to it, other versions of the invoice keep the link. Besides the
> simplicity this allows for any numbering scheme - whatever one puts
> there; even the table may have just primary id if just rowids are
> enough.
>
> More space-savvy way is to have just one table with a row per
> numbering-type (one for invoice-numbers, one for account-numbers,
> employee-numbers etc), and for a new document increment the
> respective row and get its value. If there are sequences, this seems
> alright, the whole operation is atomic.
>
> But if there are no sequences, i cannot make this multi-access safe.
> atomic updates are alright for avoiding races, but reading the value
> after that - no guarantee it is right one, another atomic update may
> have sneaked in meanwhile. Any help here?
> or should i use locking? im trying to avoid it...
>
> ciao
> svilen
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to