Crear una tabla temporal en MySQL

Preet Sanghavi 30 enero 2023
  1. Crear tabla temporal básica en MySQL
  2. Creación de una tabla temporal a partir de la consulta SELECT
Crear una tabla temporal en MySQL

En este tutorial, nuestro objetivo es explorar diferentes métodos para crear una tabla temporal en MySQL.

Una de las características clave de una tabla temporal es que es fundamental para almacenar datos provisionales. Esta función está habilitada en MySQL versión 3.23 y superior.

Estas tablas se pierden cuando el usuario abandona manualmente la tabla o la sesión finaliza.

Otra característica de una tabla temporal es que el mismo nombre de la tabla se puede utilizar en varias conexiones. Esto es posible ya que el cliente solo puede trabajar con la tabla temporal creada por él.

Hay dos formas principales de crear una tabla temporal en MySQL:

  • Creación de tablas temporales básicas.
  • Creación de tabla temporal a partir de la consulta SELECT.

Sin embargo, antes de comenzar, creamos un conjunto de datos ficticio para trabajar. Aquí creamos una tabla, student_details, junto con algunas filas en ella.

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

La consulta anterior crea una tabla junto con filas con el nombre y apellido del estudiante. Para ver las entradas en los datos, usamos el siguiente código:

SELECT * FROM student_details;

El código anterior daría el siguiente resultado:

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

Ahora, creemos una tabla temporal con el nombre students_temporary similar a la tabla student_details.

Crear tabla temporal básica en MySQL

Uno de los métodos más básicos para crear una tabla temporal es utilizar la palabra clave TEMPORARY. Podemos crear una tabla temporal llamada student_details de la siguiente manera:

-- Basic temporary table creation
CREATE TEMPORARY TABLE students_teporary(
      stu_id int,
      stu_firstName varchar(255) DEFAULT NULL,
      stu_lastName varchar(255) DEFAULT NULL,
      primary key(stu_id)
    );

El código anterior crea una tabla temporal llamada students_teporary. A continuación, insertemos algunas entradas en esta tabla con el siguiente código:

-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

La salida del código mencionado anteriormente da como resultado una tabla temporal de la siguiente manera:

stu_id	stu_firstName	stu_lastName
1	        Preet	      Sanghavi
2	        Rich	      John
3	        Veron	      Brow
4	        Geo	          Jos
5	        Hash	      Shah
6			Sachin		  Parker
7			David	      Miller

Creación de una tabla temporal a partir de la consulta SELECT

Otro método para crear tablas temporales es hacer uso de la instrucción select. Este método nos ayuda a replicar una tabla completa en una tabla temporal con las mismas entidades y tipos de datos. Intentemos crear una tabla temporal students_details_temporary utilizando la instrucción SELECT. Podemos hacer esto con el siguiente código.

-- Replicating the students_details table
CREATE TEMPORARY TABLE IF NOT EXISTS students_details_temporary AS (SELECT * FROM students_details);

Nota: En la consulta anterior, usamos SI NO EXISTE para asegurarnos de que no haya una tabla con el nombre student_details_temporary en la base de datos.

El código mencionado anteriormente dará el siguiente resultado:

stu_id	stu_firstName	stu_lastName
1	        Preet	      Sanghavi
2	        Rich	      John
3	        Veron	      Brow
4	        Geo	          Jos
5	        Hash	      Shah
6			Sachin		  Parker
7			David	      Miller

Como podemos ver, se ha generado una tabla temporal con las mismas entidades y entradas que la tabla original (student_details).

Por lo tanto, con la ayuda de los dos métodos anteriores, podemos crear una tabla temporal de manera eficiente. Esta tabla temporal se elimina tan pronto como finaliza la última conexión.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

Artículo relacionado - MySQL Table