Es un recurso muy útil en algunas situaciones en las que requerimos procesar información de las tablas y poderlas modificar sin necesidad de alterar la original (claro siempre podemos adoptar otras técnicas), y con la principal característica de que solo están disponibles mientras dure abierta la conexión, ya que se eliminan inmediatamente cuando cerramos la conexión. Las tablas temporales pueden eliminarse de forma explicita ( utilizando el comando DELETE) pero la idea implicita es que no si nos “olvidamos” de hacerlo MySQL lo hace por nosotros.

Se puede crear una tabla temporal de varias maneras:

 

  • Definiendo de forma explicita sus columnas
1
CREATE TEMPORARY TABLE nombreTablaTemporal (...definicion de columnas...);

 

  • Partiendo de una existente (clonación)
1
CREATE TEMPORARY TABLE nombreTablaTemporal LIKE tablaOriginal;

 

  • En “vuelo” a partir de un ResultSet
1
CREATE TEMPORARY TABLE nombreTablaTemporal SELECT ... ;

 

Las tablas temporales están enlazadas con una conexión especifica, por lo que varios clientes pueden crear tablas temporales con el mismo nombre sin que se interfieran unas con otras. Otra propiedad de estas tablas es que pueden tener el nombre de una tabla permanente, en este caso la tabla temporal “esconde” la permanente mientras la primera exista, facilitando el uso de copias de tablas permanentes sin afectar a la original, si llegásemos a eliminar la tabla temporal de forma explicita (sentencia DROP Table) y esta “esconde” a la permentente, aún conservariamos la permanente.

 

A tener en cuenta

  • Si quieres reutilizar una tabla temporal que previamente has creado, debes eliminarla explicitamente primero, ya que si intentas crear dicha tabla temporal se generará un error.
  • Debes tener cuidado cuando trabajas con tablas temporales que “esconden” a tablas permanentes, ya que una mala gestión de errores de desconexión acarreará la posibilidad de perder la tabla  temporal y seguir trabajando con la permanente.

 

 

 

(Visited 17,346 times, 5 visits today)