Partilhar via


DROP TABLE

Aplica-se a:verificado Databricks SQL verificado Databricks Runtime

Exclui a tabela e remove o diretório associado à tabela do sistema de arquivos se a tabela não for uma EXTERNAL tabela. Uma exceção é lançada se a tabela não existir. Para eliminar uma tabela, tem de ter o privilégio de MANAGE sobre a tabela, ser o seu proprietário ou o proprietário do esquema, catálogo ou metastore em que a tabela reside.

No caso de uma tabela externa, apenas as informações de metadados associadas são removidas do esquema do metastore.

Quaisquer restrições de chave estrangeira que façam referência à tabela também são descartadas.

Se a tabela estiver armazenada em cache, o comando desarmazenará em cache a tabela e todos os seus dependentes.

Nota

As tabelas são eliminadas no prazo de 7 a 30 dias. O Unity Catalog suporta o comando UNDROP TABLE para recuperar tabelas geridas descartadas durante 7 dias. Após 7 dias, os dados subjacentes são marcados para exclusão do locatário da nuvem durante as operações regulares de manutenção da tabela.

Sintaxe

DROP [ TEMPORARY ] TABLE [ IF EXISTS ] table_name [ FORCE ]

Parâmetro

  • TEMPORÁRIO

    Aplica-se a:assinalado sim Databricks SQL assinalado sim Databricks Runtime 17.3 e superiores

    Apaga uma TEMPORARY tabela.

  • SE EXISTE

    Se especificado, nenhum erro TABLE_OR_VIEW_NOT_FOUND é lançado quando a tabela não existe.

  • table_name

    O nome da tabela a ser eliminada. O nome não deve incluir uma especificação temporal ou uma especificação de opções. Se a tabela não puder ser encontrada, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND. Se a relação encontrada não for uma tabela, o Azure Databricks gerará um erro WRONG_COMMAND_FOR_OBJECT_TYPE.

  • FORÇA

    Se especificado, a tabela pode ser descartada mesmo se tiver clones superficiais dependentes. Isso só é aplicável para tabelas gerenciadas do Unity Catalog. Consulte Eliminar a tabela base para um clone superficial.

Exemplos

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

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