Prise en charge des tables temporaires
Notez que les tables temporaires ne sont pas répliquées. Par conséquent, rien ne garantit que les données insérées dans une table temporaire seront disponibles sur les autres répliques. Les tables temporaires sont principalement utiles pour interroger ou joindre de petits jeux de données externes au cours d’une même session.
- 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
(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.