Kategorien:

DDL für Datenbanken, Schemas und Freigaben

DROP SCHEMA

Entfernt ein Schema aus der aktuellen/spezifizierten Datenbank.

Siehe auch:

CREATE SCHEMA, SHOW SCHEMAS, UNDROP SCHEMA

Syntax

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

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ß- und Kleinschreibung zu beachten.

Wenn der Schemabezeichner nicht vollqualifiziert ist (in Form von Datenbankname.Schemaname), sucht der Befehl in der aktuellen Datenbank nach dem Schema 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 entferntes Schema bereinigt wurde, kann es nicht mehr wiederhergestellt werden, es muss neu erstellt werden.

  • Nach dem Entfernen eines Schemas wird durch das Erstellen eines gleichnamigen Schemas 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 für Sicherheit auf Spaltenebene eine Maskierungsrichtlinie an eine Tabelle oder Ansichtsspalte angehängt ist, muss die Maskierungsrichtlinie zum erfolgreichen Löschen des Schemas in Datenbank und Schema eigenständig sein. Beispielsweise enthält „Datenbank_1“ die Richtlinie „Richtlinie_1“, wobei „Richtlinie_1“ wird nur in „Datenbank_1“ verwendet wird.

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 |
+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+