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