temporales tablas tabla partir las eliminar donde dinamica desde create crear almacenan mysql select temp-tables create-table derived-table

mysql - tablas - Cree una tabla temporal en una instrucción SELECT sin un CREATE TABLE separado



donde se almacenan las tablas temporales sql server (5)

¿Es posible crear una tabla temporal (solo sesión) a partir de una declaración de selección sin usar una declaración de creación de tabla y especificar cada tipo de columna? Sé que las tablas derivadas son capaces de esto, pero son súper temporales (solo para sentencias) y quiero volver a usarlas.

Se ahorraría tiempo si no tuviera que escribir un comando de creación de tabla y mantener la lista de columnas y la lista de tipos coincidentes.


Además de la respuesta de psparrow, si necesita agregar un índice a su tabla temporal, haga lo siguiente:

CREATE TEMPORARY TABLE IF NOT EXISTS temp_table ( INDEX(col_2) ) ENGINE=MyISAM AS ( SELECT col_1, coll_2, coll_3 FROM mytable )

También funciona con PRIMARY KEY


El motor debe estar antes de seleccionar:

CREATE TEMPORARY TABLE temp1 ENGINE=MEMORY as (select * from table1)


Utilice esta sintaxis:

CREATE TEMPORARY TABLE t1 (select * from t2);


ENGINE=MEMORY no es compatible cuando la tabla contiene columnas BLOB / TEXT


CREATE TEMPORARY TABLE IF NOT EXISTS table2 AS (SELECT * FROM table1)

Del manual que se encuentra en http://dev.mysql.com/doc/refman/5.7/en/create-table.html

Puede utilizar la palabra clave TEMPORAL al crear una tabla. Una tabla TEMPORAL solo es visible para la sesión actual y se elimina automáticamente cuando se cierra la sesión. Esto significa que dos sesiones diferentes pueden usar el mismo nombre de tabla temporal sin entrar en conflicto entre sí o con una tabla no TEMPORAL existente del mismo nombre. (La tabla existente se oculta hasta que se descarta la tabla temporal). Para crear tablas temporales, debe tener el privilegio CREAR TABLAS TEMPORALES.