Em Ter, 2013-05-07 às 14:29 -0300, izaque Maciel escreveu: > 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]*
Apenas corrigindo, foi o Fabrizio quem questionou isto. :) > 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. Se esta sua base só pode ser acessada/manipulada por esta aplicação *específica*, as sugestões do Osvaldo (lá no começo da thread) e a do Flávio são pertinentes e você poderia pensar em utilizar i) SELECT FOR UPDATE ou ii) pg_advisory_locks, entretanto a aplicação teria que ser modificada para acessar seguindo a regra que você escolherá (i) ou (ii), pelo menos para a tabela em questão. A grosso modo seria procurar todos os locais que fazem SELECT nesta tabela e altere para utilizar a opção (i) ou (ii). Você precisa fazer isto para qualquer aplicação que utilize esta base. Por fim, você pode criar uma função que encapsula a lógica de forma atômica e re-utilizá-la na(s) aplicação(ões). []s -- Dickson S. Guedes mail/xmpp: [email protected] - skype: guediz http://guedesoft.net - http://www.postgresql.org.br http://www.rnp.br/keyserver/pks/lookup?search=0x8F3E3C06D428D10A
signature.asc
Description: This is a digitally signed message part
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
