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

Unity Catalog unterstützt den UNDROP TABLE Befehl zum Wiederherstellen verworfener verwalteter Tabellen. Standardmäßig sind Tabellen für 7 Tage nach dem Entfernen wiederherstellbar, und man kann die Wiederherstellungszeit auf Katalog- oder Schema-Ebene auf 0 (um die Wiederherstellung zu deaktivieren) oder 7 bis 30 Tage konfigurieren. Die Konfiguration des Wiederherstellungszeitraums findet in der öffentlichen Vorschau statt. Ein asynchroner Löschprozess löscht die zugrundeliegenden Datendateien dauerhaft, nachdem die Wiederherstellungsphase abgelaufen ist, sodass die Dateien noch eine Zeit lang in Ihrem Cloud-Tenant verbleiben können, nachdem die Tabelle nicht mehr wiederherstellbar ist. Siehe Drop a managed table and Object storage lifecycle in Unity Catalog.

Syntax

DROP TABLE [ IF EXISTS ] table_name [ FORCE ]
DROP {TEMP | TEMPORARY} TABLE table_name [IF EXISTS]

Parameter

  • TEMP oder TEMPORÄR

    Gilt für:Grünes Häkchen für „Ja“ Databricks SQL

    Wenn angegeben, wird die temporäre Tabelle abgelegt. Wenn in der Sitzung keine temporäre Tabelle mit diesem Namen vorhanden ist, löst der Befehl einen TABLE_OR_VIEW_NOT_FOUND Fehlerbedingungsfehler aus.

    Wenn nicht angegeben, legt der Befehl nur eine permanente Tabelle ab und löst einen Fehler aus, wenn eine temporäre Tabelle mit demselben nicht qualifizierten Namen in der Sitzung vorhanden ist. Verwenden Sie den qualifizierten Namen, um eine permanente Tabelle abzulegen, wenn eine temporäre Tabelle denselben Namen verwendet.

  • 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, wird eine von Unity Catalog verwaltete Tabelle verworfen, selbst wenn sie abhängige flache Klone enthält. FORCE wird nur dort benötigt, wo der Arbeitsbereich den Drop-Time-Schutz für flache Klone durchsetzt. Wenn eine Plain DROP TABLE mit CANNOT_DROP_BASE_TABLE_REFERENCED_BY_SHALLOW_CLONEversagt, überschreibe FORCE sie. 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.
-- Where the workspace enforces drop-time protection for shallow clones,
-- a plain DROP 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 the base table even when it has shallow clones. The referencing shallow clones stop working.
> DROP TABLE employeetable FORCE;

-- Creates and drops a temporary table
> CREATE TEMPORARY TABLE scratchpad(txt STRING);
> DROP TEMPORARY TABLE scratchpad;