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 ビュー)を使用して、復元するテーブルを指定できます。復元されたテーブルの名前は変わりません。 例 をご参照ください。
注釈
You can only use the system-generated identifier with the IDENTIFIER() keyword when executing the UNDROP command for notebooks, tables, block storage snapshots, schemas, and databases.
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);