¿Es posible crear una tabla temporal (solo sesión) a partir de una instrucción select sin usar una instrucció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 enunciados) y quiero reutilizarlas.
Ahorraría tiempo si no tuviera que escribir un comando de crear tabla y mantener la lista de columnas y la lista de tipos coincidentes.
fuente
temporary
asícreate temporary table mytable as select ...
.create table t as select ... limit 0; alter table t engine=memory; insert into t select ...
. O, tal vez pueda cambiar el "motor predeterminado de nuevas tablas". Me imagino que esto se puede hacer en una variable de nivel de sesión. Mejor aún, use el botón Hacer pregunta en la esquina superior derecha.CREATE TEMPORARY TABLE IF NOT EXISTS table2 LIKE table1
si no quieres copiar datos, solo estructuraAdemás de la respuesta de psparrow si necesita agregar un índice a su tabla temporal, haga lo siguiente:
También funciona con
PRIMARY KEY
fuente
Use esta sintaxis:
fuente
El motor debe estar antes de seleccionar:
fuente
ENGINE=MEMORY
no es compatible cuando la tabla contieneBLOB
/TEXT
columnasfuente
fuente