UNDROP TABLE¶
削除されたテーブルの最新バージョンを復元します。
- こちらもご参照ください。
CREATE TABLE、 ALTER TABLE、 DROP TABLE、 SHOW TABLES、 DESCRIBE TABLE
構文¶
UNDROP TABLE <name>
パラメーター¶
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;
+---------------------------------+
| status |
|---------------------------------|
| Table T2 successfully restored. |
+---------------------------------+
テーブル ID を使用してテーブルを UNDROP¶
IDENTIFIER() を使用して、 ID によってドロップされたテーブルを復元します。 TABLES ビュー の table_id
列を使えば、特定のテーブルの ID を見つけることができます。たとえば、 my_table
という名前の複数のドロップされたテーブルがあり、最後から2番目にドロップされたテーブル my_table
を復元したい場合は、以下の手順に従ってください。
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;
+----------+------------+--------------+---------------+-------------------------------+-------------------------------+---------+ | 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 | +----------+------------+--------------+---------------+-------------------------------+-------------------------------+---------+
テーブル ID で
my_table
をアンドロップする最後から2番目に削除されたテーブルを復元するには、前のステートメントの出力からテーブル ID408578
を使います。以下のステートメントを実行すると、テーブルは元の名前、my_table
で復元されます。UNDROP TABLE IDENTIFIER(408578);