DROP ICEBERG TABLE

現在/指定のスキーマから Icebergテーブル を削除しますが、 UNDROP ICEBERG TABLE を使用して復元できるように、Icebergテーブルのバージョンを保持します。詳細については、 使用上の注意 (このトピック内)をご参照ください。

このトピックでは、 Iceberg tables と指定することで混乱を避ける場合を除き、Icebergテーブルを単に「テーブル」と呼ぶことに注意してください。

こちらもご参照ください。

CREATE ICEBERG TABLE , SHOW ICEBERG TABLES , UNDROP ICEBERG TABLE

構文

DROP [ ICEBERG ] TABLE [ IF EXISTS ] <name> [ CASCADE | RESTRICT ]
Copy

パラメーター

name

ドロップするテーブルの識別子を指定します。識別子にスペース、特殊文字、または大文字と小文字が混在する場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます(例えば、 "My Object")。

テーブル識別子が完全修飾されていない場合(db_name.schema_name.table_name または schema_name.table_name の形式)、コマンドは、セッションの現在のスキーマにあるテーブルを探します。

CASCADE | RESTRICT

テーブルを参照する外部キーが存在する場合、テーブルをドロップできるかどうかを指定します。

  • CASCADE は、テーブルに他のテーブルの外部キーによって参照されるプライマリ/一意キーがある場合でも、テーブルをドロップします。

  • RESTRICT は既存の外部キー参照に関する警告を返し、テーブルをドロップしません。

デフォルト: CASCADE

アクセス制御の要件

この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

オブジェクト

メモ

OWNERSHIP

Icebergテーブル

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

USAGE

外部ボリューム

USAGE

統合(カタログ)

Icebergテーブルがカタログ統合を使用する場合は必要です。

スキーマ内の任意のオブジェクトを操作するには、親データベースとスキーマに対する USAGE 権限も必要であることに注意してください。

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

使用上の注意

  • テーブルをドロップしても、システムから永久に削除されるわけではありません。Snowflakeは、ドロップされたテーブルのバージョンをテーブルの DATA_RETENTION_TIME_IN_DAYS パラメーターで指定された日数の間、 Time Travel に保持します。詳細については、 Icebergテーブルのメタデータおよびスナップショット をご参照ください。

  • Time Travelの保持期間内であれば、 UNDROP ICEBERG TABLE コマンドを使用して、ドロップしたテーブルを復元できます。

  • ドロップされたテーブルがパージされると、復元できません。再作成する必要があります。

  • テーブルをドロップした後、同じ名前のテーブルを作成すると、新しいバージョンのテーブルが作成されます。以下のステップに従うと、以前のテーブルのドロップされたバージョンを復元できます。

    1. 現在のバージョンのテーブルの名前を別の名前に変更します。

    2. UNDROP ICEBERG TABLE コマンドを使用して、以前のバージョンを復元します。

  • テーブルをドロップする前に、テーブルを参照するビューが ない ことを確認してください。ビューが参照するテーブルをドロップすると、ビューが無効になります(ビューをクエリすると「オブジェクトが存在しません」というエラーが返されます)。

テーブルをドロップします。

DROP ICEBERG TABLE t2;

+--------------------------+
| status                   |
|--------------------------|
| T2 successfully dropped. |
+--------------------------+
Copy

テーブルを再度ドロップしますが、テーブルが存在しない場合でもエラーは発生しません。

DROP ICEBERG TABLE IF EXISTS t2;

+------------------------------------------------------------+
| status                                                     |
|------------------------------------------------------------|
| Drop statement executed successfully (T2 already dropped). |
+------------------------------------------------------------+
Copy