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 ]
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
oderschema_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:
Benennen Sie die aktuelle Version der Tabelle um.
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. | +--------------------------+
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). | +------------------------------------------------------------+