DROP TABLE

Van toepassing op:aangevinkt als ja Databricks SQL aangevinkt als ja Databricks Runtime

Hiermee verwijdert u de tabel en verwijdert u de map die aan de tabel is gekoppeld uit het bestandssysteem als de tabel geen EXTERNAL tabel is. Er wordt een uitzondering gegenereerd als de tabel niet bestaat. Als u een tabel wilt verwijderen, moet u de bevoegdheid MANAGE voor de tabel hebben, de eigenaar zijn of de eigenaar van het schema, de catalogus of de metastore waarin de tabel zich bevindt.

In het geval van een externe tabel worden alleen de bijbehorende metagegevensgegevens verwijderd uit het metastore-schema.

Foreign key-beperkingen die naar de tabel verwijzen, worden ook verwijderd.

Als de tabel in de cache is opgeslagen, maakt de opdracht de cache van de tabel en alle afhankelijke items ongedaan.

Notitie

Unity Catalog ondersteunt de UNDROP TABLE opdracht om verwijderde beheerde tabellen te herstellen. Standaard zijn tabellen 7 dagen na verwijdering herstelbaar, en je kunt de herstelperiode op catalogus- of schemaniveau instellen op 0 (om herstel uit te schakelen) of 7 tot 30 dagen. Het configureren van de herstelperiode vindt plaats in Public Preview. Een asynchroon zuiveringsproces verwijdert de onderliggende databestanden permanent nadat de herstelperiode is afgelopen, zodat de bestanden nog enige tijd in je cloud-tenant kunnen blijven nadat de tabel niet meer herstelbaar is. Zie Een beheerde tabel - en objectopslaglevenscyclus verwijderen in Unity Catalog.

Syntaxis

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

Kenmerk

  • TEMP of TIJDELIJK

    Van toepassing op:aangevinkt als ja Databricks SQL

    Als dit is opgegeven, wordt de tijdelijke tabel verwijderd. Als er geen tijdelijke tabel met deze naam in de sessie bestaat, wordt met de opdracht een fout met TABLE_OR_VIEW_NOT_FOUND fout gegenereerd .

    Als dit niet is opgegeven, wordt met de opdracht alleen een permanente tabel verwijderd en wordt er een fout gegenereerd als er een tijdelijke tabel met dezelfde niet-gekwalificeerde naam aanwezig is in de sessie. Als u een permanente tabel wilt verwijderen wanneer een tijdelijke tabel dezelfde naam deelt, gebruikt u de gekwalificeerde naam.

  • ALS BESTAAT

    Als dit is opgegeven, wordt er geen TABLE_OR_VIEW_NOT_FOUND fout gegenereerd wanneer de tabel niet bestaat.

  • table_name

    De naam van de tabel die moet worden verwijderd. De naam mag geen tijdelijke specificatie of optiesspecificatie bevatten. Als de tabel niet kan worden gevonden, genereert Azure Databricks een TABLE_OR_VIEW_NOT_FOUND-fout. Als de gevonden relatie geen tabel is, genereert Azure Databricks een WRONG_COMMAND_FOR_OBJECT_TYPE fout.

  • KRACHT

    Indien gespecificeerd, laat een door de Unity Catalog beheerde tabel vallen, zelfs wanneer deze afhankelijke ondiepe klonen heeft. FORCE is alleen vereist waar de werkruimte drop-time bescherming handhaaft voor ondiepe klonen. Als een plain DROP TABLE faalt met CANNOT_DROP_BASE_TABLE_REFERENCED_BY_SHALLOW_CLONE, gebruik FORCE dan om het te overschrijven. Zie De basistabel verwijderen voor een ondiepe kloon.

Voorbeelden

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