Re: How to generate unique invoice numbers foreach day

From: Tomas Vondra <tv(at)fuzzy(dot)cz>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: How to generate unique invoice numbers foreach day
Date: 2011-01-15 19:57:33
Message-ID: 4D31FC2D.5010206@fuzzy.cz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

If the gaps (user gets a number from a sequence and then rollbacks the
transaction) are not a problem, then the sequences (reset every day) are
probably the best solution.

If the gaps are a problem (which is usually the case with invoicing
systems), then you need to manage that on your own, e.g. using a table
with one row for sequence (but that might be a bottleneck with multiple
users and a lot of invoices).

Tomas

Dne 15.1.2011 20:32, Jorge Godoy napsal(a):
> Why would you do that?
>
> You can always reset the sequence at the end of the day.
>
> --
> Jorge Godoy <jgodoy(at)gmail(dot)com <mailto:jgodoy(at)gmail(dot)com>>
>
>
> On Sat, Jan 15, 2011 at 17:09, Andrus Moor <kobruleht2(at)hot(dot)ee
> <mailto:kobruleht2(at)hot(dot)ee>> wrote:
>
> There are 365 days in year.
> Do you really think pre-creating sequence for every day for every
> year is best solution ?
>
> Andrus.
>
> ----- Original Message -----
> *From:* Jorge Godoy <mailto:jgodoy(at)gmail(dot)com>
> *To:* Andrus Moor <mailto:kobruleht2(at)hot(dot)ee>
> *Cc:* pgsql-general(at)postgresql(dot)org
> <mailto:pgsql-general(at)postgresql(dot)org>
> *Sent:* Saturday, January 15, 2011 8:41 PM
> *Subject:* ***SPAM*** Re: [GENERAL] How to generate unique
> invoice numbers foreach day
>
> Use a sequence.
>
> --
> Jorge Godoy <jgodoy(at)gmail(dot)com <mailto:jgodoy(at)gmail(dot)com>>
>
>
> 2011/1/15 Andrus Moor <kobruleht2(at)hot(dot)ee <mailto:kobruleht2(at)hot(dot)ee>>
>
> Invoice numbers have format yymmddn
>
> where n is sequence number in day staring at 1 for every day.
>
> command
>
> SELECT COALESCE(MAX(nullif(substring( substring(tasudok from
> 7), '^[0-9]*'),'')::int),0)+1
> FROM invoice
> where date= ?invoicedate
>
> is used to get next free invoice number if new invoice is saved.
>
> If multiple invoices are saved concurrently from different
> processes, they will probably get same number.
>
> How to get unique invoice number for some day in 8.1+ when
> multiple users create new invoices ?
>
> Andrus.
>
> --
> Sent via pgsql-general mailing list
> (pgsql-general(at)postgresql(dot)org
> <mailto:pgsql-general(at)postgresql(dot)org>)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>
>
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2011-01-15 19:58:35 Re: HA solution
Previous Message Jorge Godoy 2011-01-15 19:32:38 Re: How to generate unique invoice numbers foreach day