Ir para conteúdo
Fórum Script Brasil
  • 0

Insert concorrente (mais de um ao mesmo tempo)


wRangel

Pergunta

Tenho uma tabela e preciso permitir que possa ser feito mais de um Insert nela ao mesmo tempo (por clientes distintos). Mas isso com transação.

Obs: Essa tabela não usa campo de "ID" com auto-incremento, o próximo id é feito lendo o ultimo e somando 1.

Como fazer pra que quando um cliente startar uma transação e ainda estiver nela (antes de dar commit...), se um proximo abrir outra, ele enxergue o ID qua ainda não foi dado um commit, para que gre um numero acima para não duplicar?

Grato pela ajuda

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

'wRangel'

Minha orientação inicial é que você faça o impossível para passar este atributo para auto_increment. Assim você não terá dor de cabeça e não precisará implementar nenhuma modificação em sua aplicação.

Se você quer ter dor de cabeça, então crie uma tabela ou um campo em uma tabela de parâmetros, armazene o último número registrado para seu ID neste campo, e toda vez que alguém for gravar um registro novo, você dá um LOCK na tabela de parâmetro, faz o update de id=id+1, grava o registro em sua tabela e libra o lock da tabela de parametro.

Não esquecendo de modificar sua aplicação para testar o lock.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...