Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/07/2010, 22:32
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: AYUDA necesito hacer 5000 querys en un proceso, es viable?

Cita:
tendria que ir de uno en uno para cada uno de los 1500 clientes.
No necesariamente, sino generar una consulta que realice esa comparación en forma masiva.
El problema es saber qué se compara con qué...
Supongamos dos tablas de clientes (la primaria y la temporal); ambas deben contener el o los campos que conformen la PK y además deberían tener el campo descripción en NULL o vacío. En ese caso, podría hacer simplemente:

Código MySQL:
Ver original
  1. UPDATE cliente C INNER JOIN clientetemporal T ON C.cliente_id = T.cliente_id
  2. SET C.descripcion = T.descripcion
  3. WHERE C.descripcion IS NULL OR C.descripcion = '';

Por su lado, insertar l oque no existe necesitaría dos consultas: Una para determinar y cargar en una tabla lo que no exista, y otra para volcarlo masivamente. Algo así:
Código MySQL:
Ver original
  1. CREATE TABLE tempcliente
  2. SELECT T.*
  3. FROM clientetemporal T LEFT JOIN cliente C ON T.cliente_id = C.cliente_id
  4. WHERE C.cliente_id IS NULL;
  5.  
  6. INSERT INTO cliente
  7. FROM tempcliente;
Lo único que hay que considerar es que esta última operación se puede hacer con * si y sólo si la tabla cliente y tempcliente tienen las mismas columnas y en el mismo orden; en caso contrario deberá indicarse qué campos se ingresar y de qué campos se toman..

Estas consultas, planeadas de esta forma, se ejecutan masivamente y no requieren una iteración de lecturas y consultas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)