DROP TABLE

Platí pro:zatrženo ano Databricks SQL zatrženo ano Databricks Runtime

Odstraní tabulku a odebere adresář přidružený k tabulce ze systému souborů, pokud tabulka není EXTERNAL tabulka. Pokud tabulka neexistuje, vyvolá se výjimka. Pokud chcete odstranit tabulku, musíte mít oprávnění k MANAGE tabulky, být jeho vlastníkem nebo vlastníkem schématu, katalogu nebo metastoru, ve kterém se tabulka nachází.

V případě externí tabulky se ze schématu metastoru odeberou pouze přidružené informace o metadatech.

Všechna omezení cizího klíče odkazující na tabulku se také zahodí.

Pokud je tabulka uložena do mezipaměti, příkaz zruší mezipaměť tabulky a všechny její závislé položky.

Poznámka:

Katalog Unity podporuje UNDROP TABLE příkaz k obnovení vyřazených spravovaných tabulek. Ve výchozím nastavení jsou tabulky obnovitelné po dobu 7 dnů po vyřazení a můžete nastavit obnovovací dobu na úrovni katalogu nebo schématu na 0 (pro deaktivaci obnovy) nebo 7 až 30 dní. Nastavení období zotavení je v Public Preview. Asynchronní proces čištění trvale smaže základní datové soubory po skončení obnovovací doby, takže soubory mohou zůstat ve vašem cloudovém tenantu po nějakou dobu poté, co tabulka již není obnovitelná. Viz Vyřazení spravované tabulky a životního cyklu úložiště objektů v katalogu Unity.

Syntaxe

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

Parametr

  • TEMP nebo DOČASNÝ

    Platí pro:označeno jako „ano“ Databricks SQL

    Pokud je tato hodnota zadaná, zahodí dočasnou tabulku. Pokud v relaci neexistuje žádná dočasná tabulka s tímto názvem, příkaz vyvolá chybu TABLE_OR_VIEW_NOT_FOUND chybového stavu .

    Pokud není zadaný, příkaz zahodí pouze trvalou tabulku a vyvolá chybu, pokud v relaci existuje dočasná tabulka se stejným nekvalifikovaným názvem. Pokud chcete odstranit trvalou tabulku, když dočasná tabulka sdílí stejný název, použijte kvalifikovaný název.

  • POKUD EXISTUJE

    Pokud je uvedeno, nedochází k vyvolání žádné TABLE_OR_VIEW_NOT_FOUND chyby, pokud tabulka neexistuje.

  • table_name

    Název tabulky, která se má smazat. Název nesmí obsahovat dočasnou specifikaci ani specifikaci možností. Pokud se tabulka nenašla, Azure Databricks vyvolá chybu TABLE_OR_VIEW_NOT_FOUND. Pokud nalezený vztah není tabulka Azure Databricks, vyvolá WRONG_COMMAND_FOR_OBJECT_TYPE chybu.

  • SÍLA

    Pokud je specifikováno, zruší tabulku spravovanou Unity Catalog i v případě, že má závislé mělké klony. FORCE je vyžadováno pouze tam, kde pracovní prostor vynucuje ochranu před časem propadu u mělkých klonů. Pokud obyčejný DROP TABLE nefunguje s CANNOT_DROP_BASE_TABLE_REFERENCED_BY_SHALLOW_CLONE, použijte FORCE ho k přepsání. Viz Přetažení základní tabulky pro mělký klon.

Příklady

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