Jump to content


Photo

Duvida Sobre O Comando Update [Mysql]


  • Faça o login para participar
1 reply to this topic

#1 DouglasDomi

DouglasDomi

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 29/03/2011, 09:33

Bom Dia,

Minha duvida é a seguinte...

tenho uma instrução MYSQL de UPDATE:

UPDATE tabela set valor = valor + 10 WHERE id = X

Digamos que ao mesmo tempo esta requisição vai chegar por 5 pessoas diferentes ao servidor...
como será tratado pelo MYSQL...sendo que utilizo estrutura de tabela InnoDB.

Pesquisei uma instrução que vazia assim...


SELECT x, valor FROM tabela WHERE id = X FOR UPDATE; 
UPDATE tabela set valor = valor + 10 WHERE id = X;

É necessario mesmo fazer o FOR UPDATE?

Como devo proceder?

Imagine o valor 10 que especifiquei acima um valor de varia de usuario para usuario, nao vai ser sempre 10...sera que pode ocorrer problema no incremento do valor caso as requisições de UPDATE cheguem exatamente ao mesmo tempo (quase impossivel) ? ...digo na hora de incrementar o valor ele for incrementar sobre um valor já desatualizado...

Obrigado desde já;

Edição feita por: DouglasDomi, 29/03/2011, 09:35.


#2 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 29/03/2011, 20:03

As instruções são executadas na ordem em que chegam. Podem chegar em instantes bem próximos, mas nunca serão executadas ao mesmo tempo, porque enquanto uma executa, a tabela fica travada e a outra precisa esperar.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq