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

no veo / creo tabla temporal

Estas en el tema de no veo / creo tabla temporal en el foro de Mysql en Foros del Web. actualice el xampp por si era eso pero nada; lo que hago es crear una tabla temporal para despues mediante otra instruccion insertar datos, pero ...
  #1 (permalink)  
Antiguo 13/02/2013, 11:31
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Exclamación no veo / creo tabla temporal

actualice el xampp por si era eso pero nada; lo que hago es crear una tabla temporal para despues mediante otra instruccion insertar datos, pero nada:
creo la tabla temporal:
Código MySQL:
Ver original
  1. CREATE TEMPORARY TABLE ayudas".$idLeccion." (
  2. idayudas int(11) NOT NULL AUTO_INCREMENT,
  3. idLeccion int(11) not null,
  4. idAlumno int(11) not null,
  5. idTipoAyuda int(11) not null,
  6. puntaje decimal(11,2) not null,
  7. PRIMARY KEY (`idayudas`));
aca inserto los datos a la tabla temporal:

Código MySQL:
Ver original
  1. insert into ayudas".$idLeccion." (idayudas,idLeccion,idAlumno, idTipoAyuda, puntaje)
  2. values(NULL, '$idLeccion', '$idAlumno', '$idTipoAyuda', '$puntaje');
cuando ejecuto la creacion de la tabla directo en la bd me sale q se ejecuto con exito pero igual no veo la tabla la tablas seria ayudas16 si reemplazo el $idLeccion.

me podrian decir xq?

Última edición por gnzsoloyo; 13/02/2013 a las 14:46 Razón: Código de programacion no permitido en los foros de Bases de Datos.
  #2 (permalink)  
Antiguo 13/02/2013, 14:51
Avatar de 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: no veo / creo tabla temporal

En primer lugar, no postees código de programación en los foros de base de datos. Existe una regla escrita (que puedes acceder en el foro padre), que indica que aquí sólo se postea SQL.

Luego, yendo a tu pregunta, lo primero que tienes que tener en cuenta es que una tabla TEMPORARY se borra automáticamente en el mismo instante en que la conexión se cierra, por cualquier razón que sea. Esto implica que si se produce cualquier interrupción del enlace, desaparece todos los datos.
Además, las tablas pertenecen a la conexión donde se crean, y por tanto son completamente invisibles para otro enlace abierto, aunque ese enlace sea abierto por el mismo usuario y al mismo tiempo (concurrentes).
¿Has tenido en cuenta estos dos detalles?

Una de las consecuencias de esto es que el INSERT puede estar funcionando perfectamente, pero no quedar nada en esa tabla si la pagina se recarga y la conexión se reabre. Así como se borra la tabla, se eliminan los datos.
Una distinción respecto de las tablas con ENGINE = TEMPORARY, es que esas tablas siguen existiendo, pero los datos no. Es decir, no son las mismas tablas...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 13/02/2013, 18:57
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: no veo / creo tabla temporal

pero la conexion no la cierro sigue abierta, pues el usuario aun sigue activo, y si ejecuto el codigo desde el phpmyadmin xq aun sigue sin aparecer?, o es que si recargo la pagina de phpmyadmin tambien se borra la tabla temporal?
  #4 (permalink)  
Antiguo 13/02/2013, 19:46
Avatar de 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: no veo / creo tabla temporal

Cita:
pero la conexion no la cierro sigue abierta, pues el usuario aun sigue activo, y si ejecuto el codigo desde el phpmyadmin xq aun sigue sin aparecer?, o es que si recargo la pagina de phpmyadmin tambien se borra la tabla temporal?
Si el script es ejecutado por una pagina web, y quieres ver la tabla con el phpMyadmin, no podrás jamás. Son dos conexiones diferentes, y la tabla sólo existe en una de ellas.
Eso es precisamente lo que te expliqué: El mismo usuario puede crear tablas de idéntico nombre en 100 conexiones a MySQL utilizando el mismo username y password, y cada una de ellas creará su propia tabla, independientemente de lo que hagas en otra conexión.
Las tablas TEMPORARY existen dentro de una sesión de mysql, y son invisibles desde otra, aunque sean del mismo user,.
En el caso de phpMyadmin, cada vez que ejecutas una consulta puede estar abriéndose una conexión distinta. No sería nada raro (otros front-end lo hacen).
Claro que este último punto no es tema que pueda asegurarte porque phpMyadmin no es MySQL, ni es parte de él. Es un proyecto independiente, y es posible que ese detalle te lo puedan decir en el Foro de PHP.
En todo caso, te comento que a nivel de script PHP, un microcorte de enlace (milisegundos), es suficiente para hacer que MySQL elimine la tabla.

Si quieres hacer el experimento, haz esto: Abre dos sesiones distintas a MySQL por consola, con el mismo usuario. Luego en una de ellas crea una tabla temporary y en la otra trata de borrarla.
MySQL te responderá, en la sesión donde no la creaste, que la tabla es desconocida.
Luego borrala en la sesión donde la creaste, y la borrará.

Finite.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: insert, php, sql, 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 13:41.