UNDROP SCHEMA

削除されたスキーマの最新バージョンを復元します。

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

CREATE SCHEMAALTER SCHEMADESCRIBE SCHEMADROP SCHEMASHOW SCHEMAS

構文

UNDROP SCHEMA <name>
Copy

パラメーター

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;
Copy
+----------------------------------------+
| status                                 |
|----------------------------------------|
| Schema MYSCHEMA successfully restored. |
+----------------------------------------+
SHOW SCHEMAS HISTORY;
Copy
+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+------------+
| 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 を復元する場合は、以下の手順に従います。

  1. 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;
    
    Copy
    +-----------+-------------+---------------+-------------------------------+-------------------------------+---------+
    | 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    |
    +-----------+-------------+---------------+-------------------------------+-------------------------------+---------+
    
  2. スキーマ ID を使ってスキーマ s1 をアンドロップします。最後に削除されたスキーマから2番目のスキーマを復元するには、前のステートメントの出力からスキーマ ID 798 を使います。以下のステートメントを実行すると、スキーマは元の名前、 s1 で復元されます。

    UNDROP SCHEMA IDENTIFIER(798);
    
    Copy