Freigeben über


DROP TABLE

Gilt für:durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime

Löscht die Tabelle und entfernt das Verzeichnis, das der Tabelle zugeordnet ist, aus dem Dateisystem, wenn die Tabelle keine EXTERNAL Tabelle ist. Wenn die Tabelle nicht vorhanden ist, wird eine Ausnahme ausgelöst. Um eine Tabelle zu löschen, müssen Sie über die MANAGE-Berechtigung für die Tabelle verfügen, ihr Besitzer oder der Besitzer des Schemas, des Datenbankkatalogs oder der Metadatenbank sein, in dem sich die Tabelle befindet.

Bei einer externen Tabelle werden nur die zugehörigen Metadateninformationen aus dem Metastoreschema entfernt.

Alle Fremdschlüsseleinschränkungen, die auf die Tabelle verweisen, werden ebenfalls gelöscht.

Wenn die Tabelle zwischengespeichert wird, hebt der Befehl die Tabelle und alle abhängigen Elemente auf.

Hinweis

Tabellen werden innerhalb von 7 bis 30 Tagen gelöscht. Unity Catalog unterstützt den UNDROP TABLE Befehl zum Wiederherstellen gelöschter verwalteter Tabellen für 7 Tage. Nach 7 Tagen werden die zugrunde liegenden Daten für das Löschen aus Ihrem Cloudmandanten während regulärer Tabellenwartungsvorgänge markiert.

Syntax

DROP TABLE [ IF EXISTS ] table_name [ FORCE ]

Parameter

  • WENN EXISTIERT

    Wird dieser Parameter angegeben, wird kein TABLE_OR_VIEW_NOT_FOUND-Fehler ausgelöst, wenn die Tabelle nicht vorhanden ist.

  • table_name

    Der Name der zu löschenden Tabelle. Der Name darf keine zeitliche Spezifikation oder Optionsspezifikation enthalten. Wenn die Tabelle nicht gefunden werden kann, löst Azure Databricks den Fehler TABLE_OR_VIEW_NOT_FOUND aus. Wenn die gefundene Beziehung keine Tabelle ist, löst Azure Databricks einen WRONG_COMMAND_FOR_OBJECT_TYPE Fehler aus.

  • KRAFT

    Wenn angegeben, kann die Tabelle gelöscht werden, auch wenn sie abhängige flache Klonen aufweist. Dies gilt nur für verwaltete Tabellen im Unity-Katalog. Siehe Ablegen der Basistabelle für einen flachen Klon.

Beispiele

-- Assumes a table named `employeetable` exists.
> DROP TABLE employeetable;

-- Assumes a table named `employeetable` exists in the `userdb` schema
> DROP TABLE userdb.employeetable;

-- Assumes a table named `employeetable` does not exist.
-- Throws TABLE_OR_VIEW_NOT_FOUND
> DROP TABLE employeetable;
  Error: TABLE_OR_VIEW_NOT_FOUND

-- Assumes a table named `employeetable` does not exist,Try with IF EXISTS
-- this time it will not throw exception
> DROP TABLE IF EXISTS employeetable;

-- Assumes a table named `employeetable` exists and has a shallow clone.
-- Throws CANNOT_DROP_BASE_TABLE_REFERENCED_BY_SHALLOW_CLONE
> DROP TABLE employeetable;
  Error: CANNOT_DROP_BASE_TABLE_REFERENCED_BY_SHALLOW_CLONE

-- Assumes a table named `employeetable` exists and has a shallow clone.
-- Drops base table, but shallow clones referencing this base table will no longer work
> DROP TABLE employeetable FORCE;