Compatibilidad con tablas temporales
ClickHouse admite tablas temporales con las siguientes características:
- Las tablas temporales desaparecen cuando finaliza la sesión, incluso si se pierde la conexión.
- Una tabla temporal usa el motor de tabla Memory si no se especifica ningún motor, y puede usar cualquier motor de tabla excepto Replicated y
KeeperMap. - No se puede especificar la DB de una tabla temporal. Se crea fuera de las bases de datos.
- No es posible crear una tabla temporal mediante una consulta DDL distribuida en todos los servidores del clúster (usando
ON CLUSTER): esta tabla solo existe en la sesión actual. - Si una tabla temporal tiene el mismo nombre que otra tabla y una consulta especifica el nombre de la tabla sin indicar la DB, se usará la tabla temporal.
- En el procesamiento de consultas distribuidas, las tablas temporales con el motor Memory utilizadas en una consulta se envían a los servidores remotos.
Sintaxis
Para crear una tabla temporal, utilice la siguiente sintaxis:
CREATE [OR REPLACE] TEMPORARY TABLE [IF NOT EXISTS] table_name
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
...
) [ENGINE = engine]En la mayoría de los casos, las tablas temporales no se crean manualmente, sino al usar datos externos para una consulta o con (GLOBAL) IN distribuido. Para obtener más información, consulte las secciones correspondientes.
Es posible usar tablas con ENGINE = Memory en lugar de tablas temporales.