UNDROP SCHEMA¶
Stellen Sie die neueste Version eines entfernten Schemas wieder her.
- Siehe auch:
CREATE SCHEMA, ALTER SCHEMA, DESCRIBE SCHEMA, DROP SCHEMA, SHOW SCHEMAS
Syntax¶
UNDROP SCHEMA <name>
Parameter¶
name
Gibt den Bezeichner für das wiederherzustellende Schema an. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.
Nutzungshinweise¶
Ein Schema kann nur in der Datenbank wiederhergestellt werden, die das Schema zum Zeitpunkt seiner Löschung enthielt. Wenn Sie zum Beispiel das Schema
s1
in der Datenbankdb1
erstellen und löschen, dann die aktuelle Datenbank zudb2
ändern und versuchen, das Schemas1
über ID (oder den vollqualifizierten Namendb1.s1
) wiederherzustellen, wird das Schemas1
in der Datenbankdb1
und nicht in der aktuellen Datenbankdb2
wiederhergestellt.Wenn bereits ein Schema mit dem gleichen Namen vorhanden ist, wird ein Fehler zurückgegeben.
UNDROP stützt sich auf die Snowflake-Funktion Time Travel. Ein Objekt kann nur wiederhergestellt werden, wenn es innerhalb der Datenaufbewahrungsfrist gelöscht wurde. Der Standardwert ist 24 Stunden.
Hybridtabellen, die zum angegebenen Schema gehören, werden nicht gelöscht.
Wenn Sie mehrere gelöschte Schemas mit dem gleichen Namen haben, können Sie das Schlüsselwort IDENTIFIER mit dem vom System generierten Bezeichner (aus Ansicht SCHEMATA) verwenden, um anzugeben, welches Schema wiederhergestellt werden soll. Der Name des wiederhergestellten Schemas bleibt derselbe. Siehe Beispiele.
Bemerkung
Sie können den vom System generierten Bezeichner nur mit dem Schlüsselwort IDENTIFIER() verwenden, wenn Sie den Befehl UNDROP für Tabellen, Schemas und Datenbanken ausführen.
Beispiele¶
Grundlegendes Beispiel¶
Stellen Sie die neueste Version eines entfernten Schemas wieder her (dieses Beispiel baut auf den Beispielen für DROP SCHEMA auf):
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] |
+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+------------+
UNDROP Schema unter Verwendung der Schema-ID¶
Ein gelöschtes Schemas durch ID mit IDENTIFIER() wiederherstellen. Die Schema-ID des spezifischen Schemas, das Sie löschen möchten, finden Sie in der Spalte schema_id
in Ansicht SCHEMATA. Wenn Sie beispielsweise mehrere gelöschte Schemas mit dem Namen s1
haben und das vorletzte gelöschte Schema s1
wiederherstellen möchten, gehen Sie wie folgt vor:
Suchen Sie die Schema ID des gelöschten Schemas in der Account Usage SCHEMATA-Ansicht:
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 | +-----------+-------------+---------------+-------------------------------+-------------------------------+---------+
Stellen Sie das Schema
s1
mit der Schema-ID wieder her. Um das vorletzte gelöschte Schema wiederherzustellen, verwenden Sie Schema-ID798
aus der Ausgabe der vorherigen Anweisung. Nachdem Sie die folgende Anweisung ausgeführt haben, wird das Schema unter seinem ursprünglichen Namen wiederhergestellt,s1
:UNDROP SCHEMA IDENTIFIER(798);