DETACH ステートメント
サーバーがテーブル、マテリアライズドビュー、辞書、またはデータベースの存在を「忘れ」させます。
構文
デタッチは、テーブル、マテリアライズドビュー、辞書、またはデータベースのデータやメタデータを削除しません。エンティティが PERMANENTLY
デタッチされていなければ、次回サーバーが起動するとメタデータを読み込み、テーブル/ビュー/辞書/データベースを再認識します。エンティティが PERMANENTLY
デタッチされている場合、自動的な再認識はありません。
テーブル、辞書、データベースが永久にデタッチされたかどうかにかかわらず、いずれの場合も、ATTACH クエリを使用してそれらを再アタッチできます。システムログテーブルも再アタッチ可能です(例: query_log
, text_log
など)。他のシステムテーブルは再アタッチできません。次回サーバーが起動すると、それらのテーブルは再認識されます。
ATTACH MATERIALIZED VIEW
は短い構文(SELECT
なし)では機能しませんが、ATTACH TABLE
クエリを使用してアタッチできます。
すでにデタッチされたテーブル(暫定的なもの)を永久にデタッチすることはできないことに注意してください。しかし、再アタッチしてから再度永久にデタッチすることは可能です。
また、デタッチされたテーブルを DROP したり、同じ名前で永久にデタッチされたテーブルを CREATE TABLE したり、RENAME TABLE クエリで他のテーブルと置き換えたりすることはできません。
SYNC
修飾子は、遅延なくアクションを実行します。
例
テーブルの作成:
クエリ:
結果:
テーブルのデタッチ:
クエリ:
結果:
ClickHouse Cloud では、ユーザーは PERMANENTLY
句を使用する必要があります。例えば DETACH TABLE <table> PERMANENTLY
とします。この句を使用しない場合、テーブルはクラスター再起動中(例えば、アップグレード中)に再アタッチされます。
関連項目