Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

CREATE TEMPORARY TABLE

Prise en charge des tables temporaires

ClickHouse prend en charge les tables temporaires, qui présentent les caractéristiques suivantes :

  • Les tables temporaires disparaissent à la fin de la session, y compris en cas de perte de connexion.
  • Une table temporaire utilise le moteur de table Memory lorsqu’aucun moteur n’est spécifié et peut utiliser n’importe quel moteur de table, à l’exception de Replicated et KeeperMap.
  • Il n’est pas possible de spécifier une DB pour une table temporaire. Celle-ci est créée en dehors des bases de données.
  • Il est impossible de créer une table temporaire à l’aide d’une requête DDL distribuée sur tous les serveurs du cluster (avec ON CLUSTER) : cette table n’existe que dans la session en cours.
  • Si une table temporaire porte le même nom qu’une autre table et qu’une requête spécifie le nom de la table sans indiquer la DB, la table temporaire est utilisée.
  • Pour le traitement distribué des requêtes, les tables temporaires utilisant le moteur Memory et référencées dans une requête sont transmises aux serveurs distants.

Syntaxe

Pour créer une table temporaire, utilisez la syntaxe suivante :

CREATE [OR REPLACE] TEMPORARY TABLE [IF NOT EXISTS] table_name
(
    name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
    name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
    ...
) [ENGINE = engine]

Dans la plupart des cas, les tables temporaires ne sont pas créées manuellement, mais lors de l'utilisation de données externes pour une requête ou pour un (GLOBAL) IN distribué. Pour plus d'informations, consultez les sections correspondantes.

Il est possible d'utiliser des tables avec ENGINE = Memory à la place des tables temporaires.

Navigation