pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Richard Huxton <dev@archonet.com>
To: Bruce Williams <bwilliams@jbs1.com>
To: pgsql-sql@postgresql.org
Subject: Re: Invoice Numbers
Date: Wed, 23 Apr 2003 19:30:32 +0100
Message-ID: <200304231930.32093.dev@archonet.com> (raw)
In-Reply-To: <3EA6B4F3.8D78F9F4@jbs1.com>
References: <3EA6B4F3.8D78F9F4@jbs1.com>

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




view thread (2+ messages)

Message-ID: <200304231930.32093.dev@archonet.com>
Permalink:  ../200304231930.32093.dev@archonet.com/
Also on:    postgresql.org/message-id/200304231930.32093.dev@archonet.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: dev@archonet.com, bwilliams@jbs1.com
  Subject: Re: Invoice Numbers
  In-Reply-To: <200304231930.32093.dev@archonet.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox