Ver Mensaje Individual
  #9 (permalink)  
Antiguo 02/08/2016, 17:53
ljbautista
 
Fecha de Ingreso: junio-2010
Ubicación: Puebla, Pue.
Mensajes: 70
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Actualización entre dos tablas grandes.

Hola compañeros pues voy a dar por solucionado el tema no sin antes dar gracias a gnzsoloyo y Libras por los consejos, pues hice algunas cuestiones como depurar la BD, agregar indices y finalmente mi sp quedo:

Código:
USE db;
DROP PROCEDURE IF EXISTS actualizacion;
DELIMITER //
CREATE PROCEDURE actualizacion()
BEGIN
    /* Actualziacion entre las tablas */
    UPDATE db.tabla1 t1 INNER JOIN db.tabla2 t2 ON t1.cuenta1=t2.cuenta SET t1.saldo = t2.saldo;
	
    /* Eliminamos de la tabla temporal los registros que ya se actualizaron*/
    DELETE t2 FROM db.tabla2 t2 INNER JOIN  db.tabla1 t1 ON t1.cuenta=t2.cuenta;

	/* En este punto en la TEMP solo quedaron los registros que no se encontraron en la tabla principal*/
    INSERT INTO db.tabla1(cuenta,saldo) SELECT cuenta,saldo FROM db.tabla2; 
	
    /* Eliminamos el resto de la tabla */
    DELETE t2 FROM db.tabla2 t2 INNER JOIN  db.tabla1 t1 ON t1.cuenta=t2.cuenta;

END //

CALL actualizacion();
Aun así al ser muchos registros en ambas tablas tarda pero bueno al menos se que ya no estoy haciendo una mala praxis al hacerlo desde el cliente :)