メインコンテンツまでスキップ
メインコンテンツまでスキップ

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 とします。この句を使用しない場合、テーブルはクラスター再起動中(例えば、アップグレード中)に再アタッチされます。

関連項目