Fórum Problema de Lock em tabela, key violation #255693

23/10/2004

0

Pessoal, estou com uma duvida. Estou desenvolvendo um aplicativo, e como experimento estou usando mysql.
Dentro do meu programa, tem um botão salvar que salva tudo aquilo que está na tela em 3 tabelas diferentes.
O problema é o seguinte, estou usando mysql 4 com tabelas myisam, no meu caso quando o cara clica em salvar antes do insert faço:

1. selecionando o maior codigo para gerar autonumeração
select max(codigo) from produtos
2. aplicando insert
insert.......codigo+1;

o problema é se haver concorrência, ou seja 100 pessoas fazendo a mesma coisa vou ter problema de key violation...Lendo o manual, verifiquei que com tabelas myisam posso dar um lock na tabela para evitar que outro usuario pegue o mesmo codigo na geração do mesmo. Então pensei em fazer isto

LOCK TABELA PRODUTOS

1. selecionando o maior codigo para gerar autonumeração
select max(codigo) from produtos
2. aplicando insert
insert.......codigo+1;

UNLOCK PRODUTOS....

isto no caso se repetirá 3 vezes na inserção pelo fato de inserção em 3 tabelas diferentes....

Não penso agora em mudar para tabelas inno....queria continuar com a tabela myisam.....vcs acham que eu perderia muito desempenho? qual melhor solução para este caso [b:6d8ef1c167][/b:6d8ef1c167]


Delphi_open

Delphi_open

Responder

Posts

24/10/2004

Vinicius2k

[b:7cbaca52c1][color=red:7cbaca52c1]Notificação de Infração às Regras de Conduta :[/color:7cbaca52c1][/b:7cbaca52c1]

Colega,

Neste tópico ocorreu infração às Regras de Conduta do Fórum.
[list:7cbaca52c1][*:7cbaca52c1]Tópico em duplicidade. Quando não obtiver respostas, responda no tópico original com um ´sobe´ para torná-lo visível na primeira página novamente, e não abra um novo tópico.
http://delphiforum.icft.com.br/forum/viewtopic.php?t=53545[/list:u:7cbaca52c1]

Peço que leia atentamente as [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta[/url] para evitar que este fato se repita.

Se algum esclarecimento sobre o funcionamento do fórum ou sobre as Regras de Conduta for necessário, envie-me uma [url=http://delphiforum.icft.com.br/forum/privmsg.php?mode=post&u=2796]Mensagem Particular[/url].


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar