Compartilhar via


DROP TABLE

Aplica-se a:com marcação de verificação sim Databricks SQL verificação marcada como sim 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 será gerada se a tabela não existir. Para remover uma tabela, você precisa ter o privilégio MANAGE na tabela, ser proprietário dela ou o proprietário do esquema, catálogo ou metastore em que a tabela reside.

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

Todas as restrições de chave estrangeira que fazem referência à tabela também são removidas.

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

Observação

As tabelas são excluídas dentro de 7 a 30 dias. O Catálogo do Unity dá suporte ao UNDROP TABLE comando para recuperar tabelas gerenciadas descartadas por 7 dias. Após 7 dias, os dados subjacentes são marcados para exclusão do seu ambiente na nuvem durante as operações regulares de manutenção de tabelas.

Sintaxe

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

Parâmetro

  • TEMPORARY

    Aplica-se a:marcado como sim Databricks SQL marcado como sim Databricks Runtime 17.3 e acima

    Exclui uma TEMPORARY tabela.

  • SE EXISTE

    Se especificado, nenhum erro TABLE_OR_VIEW_NOT_FOUND será gerado quando a tabela não existir.

  • table_name

    O nome da tabela a ser descartada. O nome não deve incluir uma especificação temporal ou 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 rasos dependentes. Isso só é aplicável para tabelas gerenciadas do Catálogo do Unity. Consulte Soltar 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;