Bom Dickson, você me perguntou anteriormente sobre:

*Uma questão importante... essa sua numeração de selos pode haver falhas???
Se não tiver problemas que vc tenha numerações desse tipo: 1, 2, 4, 7, 9,
10, 11, 15... então vc pode usar sequences [1]*

A sequense garante um nº único.
Mas infelizmente não dá pra usar a sequense, seria algo como isso, mas não
é um "incremento", o nº de selo se repete todas as
vezes que adquiro uma nova remessa de uma determinada categoria, a cada
remessa inicia de zero. Não é algo como "eu" gere o próximo número, mas sim
eu cadastro esta numeração na base de dados.

É algo mais ou menos como o Marcelo me enviou em anexo, uma function que
busca o selo e já o atualiza para situação 3, que deve ser como utilizado.
Assim como o Marcelo utiliza, eu imaginei em fazer antes de postar na
lista. Mas a minha dúvida é que se eu utilizar a function, e passar todos
os meus parâmetros para que ela faça todos os inserts e atualizações
necessárias, mesmo assim, não vai haver o problema de concorrência? O meu
problema é somente que 2 ou mais usuários de sessões diferentes não
utilizem um mesmo número, porque ai,
o primeiro que conseguir utilizar o nº (Inserts, updates) tudo certo, mas o
segundo obterá um erro de violação de chaves únicas/primárias no momento
dos inserts e updates.


2013/5/7 Dickson S. Guedes <[email protected]>

> Em Ter, 2013-05-07 às 13:39 -0300, eu escrevi:
> > Você conseguiria exercitar em sua aplicação o uso de sequences e obter
> > este valor usando algo como: nexval('nome_sequence') - 1  ?
>
>
> Oops o correto seria : nextval
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a