DROP ICEBERG TABLE

Entfernt eine Iceberg-Tabelle aus dem aktuellen/angegebenen Schema, behält aber eine Version der Iceberg-Tabelle bei, sodass sie mit UNDROP ICEBERG TABLE wiederhergestellt werden kann. Weitere Informationen dazu finden Sie unter Nutzungshinweise (unter diesem Thema).

Beachten Sie, dass unter diesem Thema Iceberg-Tabellen einfach als „Tabellen“ bezeichnet werden, es sei denn, die Angabe von Iceberg-Tabellen vermeidet Verwechslungen.

Siehe auch:

CREATE ICEBERG TABLE , SHOW ICEBERG TABLES , UNDROP ICEBERG TABLE

Syntax

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

Parameter

name

Gibt den Bezeichner für die zu löschende Tabelle an. Wenn der Bezeichner Leerzeichen, Sonderzeichen oder Zeichen in Groß-/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 (z. B. "My Object").

Wenn der Tabellenbezeichner nicht vollqualifiziert ist (in der Form db_name.schema_name.table_name oder schema_name.table_name), sucht der Befehl die Tabelle im aktuellen Schema der Sitzung.

CASCADE | RESTRICT

Gibt an, ob die Tabelle gelöscht werden kann, wenn Fremdschlüssel existieren, die auf die Tabelle verweisen:

  • CASCADE entfernt die Tabelle, auch wenn sie Unique-/Primärschlüssel hat, die von Fremdschlüsseln in anderen Tabellen referenziert werden.

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

Standard: CASCADE

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

OWNERSHIP

Iceberg-Tabelle

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

USAGE

Externes Volume

USAGE

Integration (Katalog)

Erforderlich, wenn die Iceberg-Tabelle eine Katalogintegration verwendet.

Beachten Sie, dass für die Bearbeitung eines Objekts in einem Schema auch die Berechtigung USAGE für die übergeordnete Datenbank und das Schema erforderlich ist.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Nutzungshinweise

  • Das Löschen einer Tabelle entfernt diese nicht dauerhaft aus dem System. Snowflake bewahrt eine Version der gelöschten Tabelle in Time Travel für die Anzahl der Tagen auf, die im Parameter DATA_RETENTION_TIME_IN_DAYS der Tabelle angegeben ist: Weitere Informationen dazu finden Sie unter Metadaten und Snapshots für Iceberg-Tabellen.

  • Innerhalb der Time Travel-Aufbewahrungsfrist können Sie eine gelöschte Tabelle mit dem Befehl UNDROP ICEBERG TABLE wiederherstellen.

  • Sobald eine gelöschte Tabelle bereinigt wurde, kann sie nicht mehr wiederhergestellt werden, sondern muss neu erstellt werden.

  • Nach dem Entfernen einer Tabelle wird durch das Erstellen einer Tabelle mit dem gleichen Namen eine neue Version der Tabelle angelegt. Sie können die gelöschte Version der vorherigen Tabelle mit den folgenden Schritten wiederherstellen:

    1. Benennen Sie die aktuelle Version der Tabelle um.

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

  • Bevor Sie eine Tabelle entfernen, vergewissern Sie sich, dass keine Ansichten auf die Tabelle verweisen. Durch das Löschen einer Tabelle, auf die eine Ansicht verweist, wird diese Ansicht ungültig (d. h. Abfragen auf die Ansicht geben den Fehler „Objekt existiert nicht“ zurück).

Beispiele

Löschen einer Tabelle:

DROP ICEBERG TABLE t2;

+--------------------------+
| status                   |
|--------------------------|
| T2 successfully dropped. |
+--------------------------+
Copy

Erneutes Löschen der Tabelle, aber ohne einen Fehler auszulösen, wenn die Tabelle nicht vorhanden ist:

DROP ICEBERG TABLE IF EXISTS t2;

+------------------------------------------------------------+
| status                                                     |
|------------------------------------------------------------|
| Drop statement executed successfully (T2 already dropped). |
+------------------------------------------------------------+
Copy