Re: Help on Procedure running external function

Поиск
Список
Период
Сортировка
От Zac
Тема Re: Help on Procedure running external function
Дата
Msg-id dabb6g$7k9$1@news.hub.org
обсуждение исходный текст
Ответ на Help on Procedure running external function  (Din Adrian <adrian.din@easynet.ro>)
Ответы Re: Help on Procedure running external function  (Din Adrian <adrian.din@easynet.ro>)
Список 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


В списке pgsql-sql по дате отправления:

Предыдущее
От: Josep Sanmartí
Дата:
Сообщение: select values from interval
Следующее
От: Din Adrian
Дата:
Сообщение: Re: Help on Procedure running external function