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

DETACHステートメント

サーバーにテーブル、マテリアライズドビュー、辞書、またはデータベースの存在を「忘れさせる」ことができます。

構文

デタッチすることは、テーブル、マテリアライズドビュー、辞書、またはデータベースのデータやメタデータを削除することはありません。もしエンティティがPERMANENTLYでデタッチされなかった場合、次回サーバーが起動した際に、サーバーはメタデータを読み取り、テーブル/ビュー/辞書/データベースを再び思い出します。もしエンティティがPERMANENTLYでデタッチされた場合、自動的に思い出すことはありません。

テーブル、辞書、またはデータベースが永久にデタッチされたかどうかにかかわらず、どちらの場合でもATTACHクエリを使用して再アタッチすることができます。システムログテーブルも再アタッチ可能です(例: query_logtext_logなど)。他のシステムテーブルは再アタッチできません。次回サーバーが起動した際に、サーバーはこれらのテーブルを再び思い出します。

ATTACH MATERIALIZED VIEWは簡短構文(SELECTなし)では機能しませんが、ATTACH TABLEクエリを使用してアタッチできます。

すでにデタッチされているテーブルを永久にデタッチすることはできませんが、再アタッチしてから再び永久にデタッチすることは可能です。

また、デタッチされたテーブルをDROPすることや、同じ名前で永久にデタッチされたテーブルを持つCREATE TABLEを作成すること、または他のテーブルとRENAME TABLEクエリで置き換えることはできません。

SYNC修飾子は、遅延なしでアクションを実行します。

テーブルの作成:

クエリ:

結果:

テーブルのデタッチ:

クエリ:

結果:

注記

ClickHouse Cloudでは、ユーザーはPERMANENTLY句を使用する必要があります。例えば、DETACH TABLE <table> PERMANENTLYのように。この句が使用されない場合、テーブルはクラスター再起動時(例: アップグレード中)に再アタッチされます。

関連情報