DROP SCHEMA

Entfernt ein Schema aus der aktuellen/spezifizierten Datenbank.

Siehe auch:

CREATE SCHEMA, ALTER SCHEMA, DESCRIBE SCHEMA, SHOW SCHEMAS, UNDROP SCHEMA

Syntax

DROP SCHEMA [ IF EXISTS ] <name> [ CASCADE | RESTRICT ]
Copy

Parameter

name

Gibt den Bezeichner für das zu entfernende Schema an. Wenn der Bezeichner Leerzeichen, Sonderzeichen oder Zeichen in Groß- und Kleinschreibung enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen eingeschlossen werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Wenn der Schema-Bezeichner nicht vollständig qualifiziert ist (in Form von db_name.schema_name), sucht der Befehl das Schema in der aktuellen Datenbank für die Sitzung.

CASCADE | RESTRICT

Gibt an, ob das Schema entfernt werden kann, wenn Fremdschlüssel existieren, die auf Tabellen im Schema verweisen:

  • CASCADE entfernt das Schema und alle Objekte im Schema, einschließlich Tabellen mit Unique-/Primärschlüsseln, die von Fremdschlüsseln in anderen Tabellen referenziert werden.

  • RESTRICT gibt eine Warnung über bestehende Fremdschlüsselreferenzen zurück und entfernt das Schema nicht.

Standard: CASCADE

Nutzungshinweise

  • Das Löschen eines Schemas entfernt dieses nicht dauerhaft aus dem System. Eine Version des entfernten Schemas wird in Time Travel für die Anzahl der Tagen gespeichert, die im Parameter DATA_RETENTION_TIME_IN_DAYS für das Schema angegeben ist:

    1. Innerhalb der Aufbewahrungsfrist für Time Travel kann ein gelöschtes Schema mit dem Befehl UNDROP SCHEMA wiederhergestellt werden.

    2. Wenn die Aufbewahrungsfrist für Time Travel endet, hängt der nächste Status des gelöschten Schemas davon ab, ob es permanent oder transient ist:

      • Ein permanentes Schema wird nach Fail-safe verschoben. Ein gelöschtes Schema in Fail-safe (7 Tage) kann wiederhergestellt werden, allerdings nur von Snowflake. Wenn das Schema Fail-safe verlässt, wird es bereinigt.

      • Ein transientes Schema hat kein Fail-safe, sodass es bereinigt wird, wenn es aus Time Travel verschoben wird.

    3. Sobald ein gelöschtes Schema bereinigt wurde, kann es nicht mehr wiederhergestellt werden, sondern muss neu erstellt werden.

  • Derzeit wird bei der Löschung eines Schemas die Datenaufbewahrungsfrist von untergeordneten Tabellen nicht berücksichtigt, falls deren Frist anders als die Aufbewahrungsfrist des Schemas ist. Die untergeordneten Tabellen werden so lange aufbewahrt wie das Schema. Damit die Datenaufbewahrungsfrist für diese Tabellen berücksichtigt wird, müssen Sie die Tabellen explizit löschen, bevor Sie das Schema löschen.

  • Nach dem Löschen eines Schemas wird beim Erstellen eines Schemas mit dem gleichen Namen eine neue Version des Schemas angelegt. Die entfernte Version des vorherigen Schemas kann mit der folgenden Methode wiederhergestellt werden:

    1. Benennen Sie die aktuelle Version des Schemas um.

    2. Verwenden Sie den Befehl UNDROP SCHEMA, um die vorherige Version wiederherzustellen.

  • Wenn eine Richtlinie oder ein Tag einer Tabelle oder Ansichtsspalte zugewiesen ist, muss die Richtlinie bzw. das Tag zum erfolgreichen Löschen des Schemas in Datenbank und Schema eigenständig sein. Beispielsweise enthält database_1 policy_1, und policy_1 wird nur in database_1 verwendet. Andernfalls entsteht eine verwaiste Referenz.

  • Die Löschoperation (DROP) schlägt fehl, wenn für einen Benutzer oder das Konto eine Sitzungsrichtlinie oder eine Kennwortrichtlinie festgelegt ist.

Beispiele

Entfernen Sie ein Schema mit dem Namen myschema (aus den CREATE SCHEMA-Beispielen):

DROP SCHEMA myschema;

+--------------------------------+
| status                         |
|--------------------------------|
| MYSCHEMA successfully dropped. |
+--------------------------------+

SHOW SCHEMAS;

+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+
| created_on                      | name               | is_default | is_current | database_name | owner  | comment                                                   | options | retention_time |
|---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------|
| Fri, 13 May 2016 17:26:07 -0700 | INFORMATION_SCHEMA | N          | N          | MYTESTDB      |        | Views describing the contents of schemas in this database |         |              1 |
| Tue, 17 Mar 2015 16:57:04 -0700 | PUBLIC             | N          | Y          | MYTESTDB      | PUBLIC |                                                           |         |              1 |
+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+
Copy