UNDROP SCHEMA¶
削除されたスキーマの最新バージョンを復元します。
- こちらもご参照ください。
CREATE SCHEMA、 ALTER SCHEMA、 DESCRIBE SCHEMA、 DROP SCHEMA、 SHOW SCHEMAS
構文¶
UNDROP SCHEMA <name>
パラメーター¶
name
復元するスキーマの識別子を指定します。識別子にスペースまたは特殊文字が含まれる場合、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。
使用上の注意¶
スキーマは、削除された時点でスキーマが含まれていたデータベースにのみ復元できます。たとえば、データベース
db1
でスキーマs1
を作成・削除した後、現在のデータベースをdb2
に変更し、スキーマs1
を ID (または完全修飾名db1.s1
)で復元しようとすると、スキーマs1
は現在のデータベースdb2
ではなく、データベースdb1
に復元されます。同じ名前のスキーマが既に存在する場合、エラーが返されます。
UNDROP は、Snowflake Time Travel の機能に依存しています。オブジェクトが データ保持期間 内で削除された場合にのみ、オブジェクトを復元できます。デフォルト値は24時間です。
指定されたスキーマに属するハイブリッド・テーブルはアンドロップされません。
同じ名前で複数のドロップされたスキーマがある場合は、 IDENTIFIER キーワード と、システムで生成された識別子(SCHEMATA ビュー)を使用して、復元するスキーマを指定できます。復元されたスキーマの名前は変わりません。 例 をご参照ください。
注釈
テーブル、スキーマ、およびデータベースに対して UNDROP コマンドを実行するときのみ、 IDENTIFIER () キーワードでシステム生成識別子を使用できます。
例¶
基本的な例¶
ドロップされたスキーマの最新バージョンを復元します(この例は DROP SCHEMA に提供された例に基づいています)。
UNDROP SCHEMA myschema;
+----------------------------------------+
| status |
|----------------------------------------|
| Schema MYSCHEMA successfully restored. |
+----------------------------------------+
SHOW SCHEMAS HISTORY;
+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+------------+
| created_on | name | is_default | is_current | database_name | owner | comment | options | retention_time | dropped_on |
|---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+------------|
| Fri, 13 May 2016 17:26:07 -0700 | INFORMATION_SCHEMA | N | N | MYTESTDB | | Views describing the contents of schemas in this database | | 1 | [NULL] |
| Tue, 17 Mar 2015 17:18:42 -0700 | MYSCHEMA | N | N | MYTESTDB | PUBLIC | | | 1 | [NULL] |
| Tue, 17 Mar 2015 16:57:04 -0700 | PUBLIC | N | Y | MYTESTDB | PUBLIC | | | 1 | [NULL] |
+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+------------+
スキーマ ID を使用した UNDROP スキーマ¶
IDENTIFIER() を使用して、 ID によってドロップされたスキーマを復元します。 SCHEMATA ビュー の schema_id
列を使用して、アンドロップする特定のスキーマのスキーマ ID を見つけることができます。たとえば、 s1
という名前の複数のドロップされたスキーマがあり、最後から2番目にドロップされたスキーマ s1
を復元する場合は、以下の手順に従います。
Account Usage SCHEMATA ビューで、削除されたスキーマのスキーマ ID を見つけます。
SELECT schema_id, schema_name, catalog_name, created, deleted, comment FROM SNOWFLAKE.ACCOUNT_USAGE.SCHEMATA WHERE schema_name = 'S1' AND catalog_name = 'DB1' AND deleted IS NOT NULL ORDER BY deleted;
+-----------+-------------+---------------+-------------------------------+-------------------------------+---------+ | SCHEMA_ID | SCHEMA_NAME | CATALOG_NAME | CREATED | DELETED | COMMENT | |-----------+-------------+---------------+-------------------------------+-------------------------------+---------| | 797 | S1 | DB1 | 2024-07-01 17:53:01.955 -0700 | 2024-07-01 17:53:11.889 -0700 | NULL | | 798 | S1 | DB1 | 2024-07-01 17:53:11.889 -0700 | 2024-07-01 17:53:16.327 -0700 | NULL | | 799 | S1 | DB1 | 2024-07-01 17:53:16.327 -0700 | 2024-07-01 17:53:25.066 -0700 | NULL | +-----------+-------------+---------------+-------------------------------+-------------------------------+---------+
スキーマ ID を使ってスキーマ
s1
をアンドロップします。最後に削除されたスキーマから2番目のスキーマを復元するには、前のステートメントの出力からスキーマ ID798
を使います。以下のステートメントを実行すると、スキーマは元の名前、s1
で復元されます。UNDROP SCHEMA IDENTIFIER(798);