Ajuda em Update....

MySQL

22/09/2006

Boa tarde.

Pessoal sou iniciante em banco de dados, mas estou montando uma ferramenta em java, e preciso que ela tenha muita agilidade no processamento, logo, preciso de instruções perfeitas para comunicar com o banco.

A tarefa é a seguinte:

A programa lê um arquivo texto com +-65.000 linhas, e salva no banco, entretanto, toda vez que for encontrado o produto repetido, ele deverá acumular o dado ´quantidade´, e caso ainda não exista o dado, inserir-lo.

Consegui monta a seguinte instrução:

Primeiro consulta se o produto existe (SELECT), se existe, pega a quantidade armazenada e soma com a que está sendo importada (UPDATE), se não existir, insere normalmente.
Esta instrução está muito lenta, pois o banco já possui mais de 150.000 linhas, e mesmo com um indice não ajudou muito.

Alguém saberia uma instrução Update...mais objectiva?
Segue abaixo a simbologia do que eu fiz:

A=SELECT ProdEIndice, ProdEQuant FROM cadastro WHERE ProCod=1000
-----------------------------
SE (A=true), Então:
UPDATE cadastro SET ProdQuant = Anterior+Atual WHERE ProdCad
=100
SENÂO:
INSERT.....
-----------------------------


Andersonasp

Andersonasp

Curtidas 0

Respostas

Wagnerbianchi

Wagnerbianchi

22/09/2006

Ola amigao,

Faca o seguinte teste em seu MySQL e tire suas conclusoes...


Crie uma tabela:
create table teste (numero int not null);


Em seguida, insira um valor:
insert into teste values (1);


Temos entao o seguinte cenario apos um SELECT:
+------------+
- numero -
+------------+
- 1 -
+------------+

OK? :wink:

Agora, vamos atualizar o valor do campo numero, idependente do valor que ja existe armazenado:

update teste set numero =numero+1;


Apos rodar o update, fazendo um novo SELECT na tabela atualizada, termos o valor do campo numero = 2. Levando em conta que o campo tenha um valor maior ou igual a zero (0), ele sera afetado.

Qualquer duvida, continue postando.


GOSTEI 0
POSTAR