UNDROP TABLE

削除されたテーブルの最新バージョンを復元します。

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

CREATE TABLEALTER TABLEDROP TABLESHOW TABLESDESCRIBE TABLE

構文

UNDROP TABLE <name> 
Copy

パラメーター

name

復元するテーブルの識別子を指定します。識別子にスペースまたは特殊文字が含まれる場合、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

使用上の注意

  • テーブルは、削除時にそのテーブルが含まれていたデータベースとスキーマにのみ復元できます。例えば、スキーマ s1 でテーブル t1 を作成し、ドロップした後、現在のスキーマを s2 に変更し、 ID (または修飾名、 s1.t1)でテーブル t1 をリストアしようとすると、テーブル t1 は現在のスキーマ s2 ではなく、スキーマ s1 に復元されます。

  • 同じ名前のテーブルが既に存在する場合、エラーが返されます。

  • 同じ名前の複数のドロップされたテーブルがある場合は、 IDENTIFIER キーワード とシステム生成識別子(TABLES ビュー)を使用して、復元するテーブルを指定できます。復元されたテーブルの名前は変わりません。 をご参照ください。

    注釈

    ノートブック、テーブル、スキーマ、およびデータベースに対して UNDROP コマンドを実行する際に、 IDENTIFIER()キーワードでシステム生成された識別子のみを使用できます。

  • UNDROP は、Snowflake Time Travel の機能に依存しています。オブジェクトが データ保持期間 内で削除された場合にのみ、オブジェクトを復元できます。デフォルト値は24時間です。

  • ハイブリッド・テーブルをアンドロップすることはできません。

基本的な例

ドロップされたテーブルの最新バージョンを復元します(この例は DROP TABLE に提供された例に基づいています)。

UNDROP TABLE t2; 
Copy
+---------------------------------+ | status | |---------------------------------| | Table T2 successfully restored. | +---------------------------------+ 

テーブル ID を使用してテーブルを UNDROP

IDENTIFIER() を使用して、 ID によってドロップされたテーブルを復元します。 TABLES ビューtable_id 列を使えば、特定のテーブルの ID を見つけることができます。たとえば、 my_table という名前の複数のドロップされたテーブルがあり、最後から2番目にドロップされたテーブル my_table を復元したい場合は、以下の手順に従ってください。

  1. Account Usage TABLES ビューで、ドロップされたテーブルのテーブル ID を見つけます。

    SELECT table_id, table_name, table_schema, table_catalog, created, deleted, comment FROM SNOWFLAKE.ACCOUNT_USAGE.TABLES WHERE table_catalog = 'DB1' AND table_schema = 'S1' AND table_name = 'MY_TABLE' AND deleted IS NOT NULL ORDER BY deleted; 
    Copy
    +----------+------------+--------------+---------------+-------------------------------+-------------------------------+---------+ | TABLE_ID | TABLE_NAME | TABLE_SCHEMA | TABLE_CATALOG | CREATED | DELETED | COMMENT | |----------+------------+--------------+---------------+-------------------------------+-------------------------------+---------| | 408578 | MY_TABLE | S1 | DB1 | 2024-07-01 15:39:07.565 -0700 | 2024-07-01 15:40:28.161 -0700 | NULL | +----------+------------+--------------+---------------+-------------------------------+-------------------------------+---------+ | 408607 | MY_TABLE | S1 | DB1 | 2024-07-01 17:43:07.565 -0700 | 2024-07-01 17:44:28.161 -0700 | NULL | +----------+------------+--------------+---------------+-------------------------------+-------------------------------+---------+ 
  2. テーブル ID で my_table をアンドロップする最後から2番目に削除されたテーブルを復元するには、前のステートメントの出力からテーブル ID 408578 を使います。以下のステートメントを実行すると、テーブルは元の名前、 my_table で復元されます。

    UNDROP TABLE IDENTIFIER(408578); 
    Copy