Jump to content
Fórum Script Brasil
  • 0

Insert concorrente (mais de um ao mesmo tempo)


wRangel

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...