Re: Invoice Numbers

From: Richard Huxton <dev(at)archonet(dot)com>
To: Bruce Williams <bwilliams(at)jbs1(dot)com>, pgsql-sql(at)postgresql(dot)org
Subject: Re: Invoice Numbers
Date: 2003-04-23 18:30:32
Message-ID: 200304231930.32093.dev@archonet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Wednesday 23 Apr 2003 4:44 pm, Bruce Williams wrote:
> Hi,
>
> I'm creating an invoice in an Access 2000 report. I would like to know
> how can I establish an invoice number that will generate automatically
> in a table? Do I have to create my own numbers or do you have a better
> suggestion. Thanks

If you want sequential invoice numbers with no gaps, then you need to make
sure that only one process allocates numbers at any time.

This means you want to either lock the table or use the serializable
transaction isolation level while allocating invoice numbers.

Allocating the next invoice number is as simple as max(invoice_num)+1 although
many invoice applications use a "next invoice value" in a system table (which
lets you set up an initial invoice number per company).

If you have many clients, you may wish to insert invoices without a number
then create the number in a second transaction to reduce lock contention. Try
a search on the mailing-list archives for other discussions on this.

--
Richard Huxton

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Josh Berkus 2003-04-23 18:49:32 Re: Optomizing left outer joins
Previous Message Rod Taylor 2003-04-23 18:28:19 Re: Deadlock problem