Re: Help on Procedure running external function

From: Zac <zaccheob(at)inwind(dot)it>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: Help on Procedure running external function
Date: 2005-07-04 12:47:16
Message-ID: dabb6g$7k9$1@news.hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Din Adrian wrote:
> Hello,
> I have a 'big' problem:
> I am trying to run from a procedure a function witch generate a new
> document number (max from table +1 ) and after to insert a document
> with this number, but the function returns me the same number each time
> because the tranzaction is not finished and the inserts are not
> commited and of course the next document number is the same.
> ...
>
> for ...
> loop
> nr=get_me_next_number(params);
> insert into table values (nr,...)
> end loop
> ...
>
> ...
> error inserting in table .. primary_key nr .....
>
> Is any way in making the external function to 'know' that I inserted
> another row but this insert is in a tranzaction that is not finish yet
> ? ar onother solution ?
>
> for now I 'solved' by asking for a nr once and generate myself next
> number (+1) but this is not a correct solution (in this time somebody
> else could insert a document with the same nr as the procedure )
>
> thank you,
> Adi
>
>
I think the best solution is to use a sequence, not "select max(id) +1
from table". Look here:
http://www.postgresql.org/docs/8.0/interactive/sql-createsequence.html
http://www.postgresql.org/docs/8.0/interactive/functions-sequence.html
Bye

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message KÖPFERL Robert 2005-07-04 15:20:19 Re: Help on Procedure running external function
Previous Message Josep Sanmartí 2005-07-04 12:00:57 select values from interval