Passer au contenu principal
Demande au serveur d‘“oublier” l’existence d’une table, d’une vue matérialisée, d’un dictionnaire ou d’une base de données. Syntaxe
DETACH TABLE|VIEW|DICTIONARY|DATABASE [IF EXISTS] [db.]name [ON CLUSTER cluster] [PERMANENTLY] [SYNC]
Le détachement ne supprime ni les données ni les métadonnées d’une table, d’une vue matérialisée, d’un dictionnaire ou d’une base de données. Si une entité n’a pas été détachée PERMANENTLY, au prochain démarrage du serveur, celui-ci lira les métadonnées et rattchera de nouveau la table/la vue/le dictionnaire/la base de données. Si une entité a été détachée PERMANENTLY, il n’y aura pas de rattachement automatique. Qu’une table, un dictionnaire ou une base de données ait été détaché de manière permanente ou non, vous pouvez dans les deux cas les rattacher à l’aide de la requête ATTACH. Les tables de logs système peuvent également être rattachées (par ex. query_log, text_log, etc.). Les autres tables système ne peuvent pas être rattachées. Au prochain démarrage du serveur, celui-ci rattachera de nouveau ces tables. ATTACH MATERIALIZED VIEW ne fonctionne pas avec la syntaxe courte (sans SELECT), mais vous pouvez la rattacher à l’aide de la requête ATTACH TABLE. Notez que vous ne pouvez pas détacher de manière permanente une table déjà détachée (temporairement). En revanche, vous pouvez la rattacher, puis la détacher à nouveau de manière permanente. De plus, vous ne pouvez pas DROP la table détachée, ni exécuter CREATE TABLE avec le même nom qu’une table détachée de manière permanente, ni la remplacer par une autre table avec la requête RENAME TABLE. Le modificateur SYNC exécute l’action sans délai. Exemple Création d’une table :
Query
CREATE TABLE test ENGINE = MergeTree ORDER BY () AS SELECT * FROM numbers(10);
SELECT * FROM test;
Response
┌─number─┐
│      0 │
│      1 │
│      2 │
│      3 │
│      4 │
│      5 │
│      6 │
│      7 │
│      8 │
│      9 │
└────────┘
Détacher la table :
Query
DETACH TABLE test;
SELECT * FROM test;
Response
Received exception from server (version 21.4.1):
Code: 60. DB::Exception: Received from localhost:9000. DB::Exception: Table default.test does not exist.
Dans ClickHouse Cloud, les utilisateurs doivent utiliser la clause PERMANENTLY, par exemple DETACH TABLE <table> PERMANENTLY. Si cette clause n’est pas utilisée, les tables seront rattachées au redémarrage du cluster, par exemple lors de mises à niveau.
Voir aussi
Dernière modification le 25 juin 2026