Mysql Lock Table

Delphi

22/10/2004

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



:arrow: [color=red:622bb14c38]Título alterado pelo Moderador oTTo.[/color:622bb14c38]
:idea: [color=blue:622bb14c38]Seja mais claro no título.[/color:622bb14c38]
:idea: [color=blue:622bb14c38][url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=16976]Saiba como obter resposta rápida..[/url][/color:622bb14c38]
:idea: [color=blue:622bb14c38]Leia sempre [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta.[/url][/color:622bb14c38]
:idea: [color=blue:622bb14c38]Use sempre o Link [url=http://delphiforum.icft.com.br/forum/search.php][img:622bb14c38]http://delphiforum.icft.com.br/forum/templates/subSilver/images/icon_mini_search.gif[/img:622bb14c38] Pesquisar[/url] no topo da Página.[/color:622bb14c38]
:idea: [color=blue:622bb14c38]Evite usar caixa alta nos títulos.[/color:622bb14c38]


Delphi_open

Delphi_open

Curtidas 0
POSTAR