Em Seg, 2006-10-30 às 13:48 -0300, Magno Lima escreveu:
> Mas esta chave é gerada automaticamente pelo tipo serial (autoinc) e
> um PK.

        Essa é uma chave artificial, que é inútil para fins conceituais.  Você
ainda precisa duma chave natural para identificar o registro, e essa
seria a ideal para usar no lugar de MAX().

        Na verdade só se deveria criar uma chave artificial quando a chave
natural for muito grande ou complexa, *e* através de chaves estrangeiras
isso for representar uma gordura para seu aplicativo.  Se não, vale mais
a pena usar a chave natural.

        E em todo caso, nunca se deve deixar de declarar uma chave natural.  Se
é primária ou alternativa é bastante irrelevante.


> A duvida é com esta tecnica eu nao teria problema por obter o max() de
> um registro recém inserido por outro usuário, certo? Penso assim pois
> conceitualmente eu criei uma secao implicita para mim... estou correto
> com o PostgreSQL? 

        Sim, você já tinha uma sessão explícita, e criou uma transação na qual
você não deveria ler dados de outras.

        Por segurança, já que você está tateando nessa área, você deveria rodar
teu sistema em nível de isolamento serializável.  Mesmo que você já
fosse o bã-bã-bã da área, é sempre mais seguro.


-- 
Leandro Guimarães Faria Corcete DUTRA <[EMAIL PROTECTED]>
http://orolix.com.br./
+55 (11) 2122 0302

Attachment: signature.asc
Description: Esta é uma parte de mensagem assinada digitalmente

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a