Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema de sobreescritura en Tabla Temporal

Estas en el tema de Problema de sobreescritura en Tabla Temporal en el foro de Mysql en Foros del Web. Hola buen día, tengo un prblema, hago un consulta y los resultados los ingreso a una tabla que es temporal y que antes de iniciar ...
  #1 (permalink)  
Antiguo 17/02/2015, 11:34
 
Fecha de Ingreso: abril-2006
Mensajes: 134
Antigüedad: 18 años, 7 meses
Puntos: 0
Problema de sobreescritura en Tabla Temporal

Hola buen día, tengo un prblema, hago un consulta y los resultados los ingreso a una tabla que es temporal y que antes de iniciar la consulta borro su contenido.

Así que primero un Truncate a la tabla temporal1.
Seguida la sentencia y los resultados los inserto en la table temporal.
Y seguido hago mas consultas.

Mi problema es que esta consulta es accesible a todos los usuarios y cuando uno ejecuta la consulta desde un botos en php, y otra persona lo ejecuta casi al mismo tiempo o antes de que teminen los insert.

Me arroja resultados diferentes, es decir al primero que hizo la consulta le aparece no se un 1345 y al segundo le aparede 2167.

Que estoy haciendo mal, es obvio que la consulta no es por que es solo una suma.

Que tendria que hacer un bloqueo de tabla para que espere a que termine el proceso de la primera??

O existe alguna forma mejor que utilizar tablas temporales?

Cabe mencionar que esta busqueda NO puedo cambiar la estructura de las tablas ya que provienen de una base en Oracle que ya esta siendo utilizada y no es posible cambiarla (por cierto a mi parecer mal diseñada), pero es lo que tengo.

Espero haberme explicado, asi como espero que sus opiniones me ayuden a solucionar este problema.

Saludos.
  #2 (permalink)  
Antiguo 17/02/2015, 18:31
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema de sobreescritura en Tabla Temporal

No uses tablas físicas como temporales. Usa tablas TEMPORARY, las que se crean y existen sólo dentro de una conexión y desaparecen solas al cerrarla.
Las tablas TEMPORARY se crean dentro de una sesión de usuario en MySQL, y es invisible para cualquier otra sesión, incluyendo sesiones paralelas y concurrentes del mismo usuario.
Esto hace que el mismo nombre de tabla pueda usarse indistintamente en N sesiones simultáneas, y en cada una de ellas los datos ser completamente diferentes, porque no leen la misma tabla de memoria ni disco.
¿Se entiende?

Una segunda ventaja es que no son datos persistentes, por lo que al cerrarse la consulta, todos los datos y la propia tabla desaparecen.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 17/02/2015 a las 19:01
  #3 (permalink)  
Antiguo 27/02/2015, 13:03
 
Fecha de Ingreso: abril-2006
Mensajes: 134
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Problema de sobreescritura en Tabla Temporal

gnzsoloyo, muchas gracias por tu respuesta, disculpa que respondo hasta ahora, pero la verdad me coupe en otras cosas.

Me parece muy muy bien. Nunca las he utilizado, pero are la prueba ahora.

Te agradezco mil.

Saludos.

Etiquetas: php, tabla, temporal
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:09.