DROP EXTERNAL TABLE

Remove uma tabela externa do esquema atual/especificado. Note que esta é uma operação somente de metadados. Nenhum dos arquivos a que a tabela externa se refere é descartado.

Consulte também:

CREATE EXTERNAL TABLE , ALTER EXTERNAL TABLE , SHOW EXTERNAL TABLES , DESCRIBE EXTERNAL TABLE

Sintaxe

DROP EXTERNAL TABLE [ IF EXISTS ] <name> [ CASCADE | RESTRICT ]
Copy

Parâmetros

name

Especifica o identificador da tabela externa a ser descartada. Se o identificador contiver espaços, caracteres especiais ou caracteres com letras maiúsculas e minúsculas, toda a cadeia de caracteres deve ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas (por exemplo, "My Object").

Se o identificador da tabela externa não estiver totalmente qualificado (na forma de db_name.schema_name.table_name ou schema_name.table_name), o comando procura a tabela externa no esquema atual para a sessão.

CASCADE | RESTRICT

Especifica se a tabela externa pode ser descartada caso existam chaves estrangeiras que façam referência à tabela:

  • CASCADE descarta a tabela externa mesmo que tenha chaves primárias/únicas que são referenciadas por chaves estrangeiras em outras tabelas.

  • RESTRICT retorna um aviso sobre as referências de chave estrangeira existentes e não descarta a tabela externa.

Padrão: CASCADE

Notas de uso

  • Ao contrário de uma tabela padrão, descartar uma tabela externa expulsa-a do sistema. Uma tabela externa não pode ser recuperada usando Time Travel; também, não há comando UNDROP EXTERNAL TABLE. Uma tabela externa descartada deve ser recriada.

  • Depois de descartar uma tabela externa, criar uma tabela externa com o mesmo nome recria a tabela. Nenhum histórico da antiga versão da tabela externa é retido.

  • Antes de descartar uma tabela externa, verifique se nenhuma exibição faz referência à tabela. O descarte de uma tabela externa referenciada por uma exibição invalida a exibição (ou seja, consultar a exibição retorna um erro “objeto não existe”).

Exemplos

Descartar uma tabela externa:

SHOW EXTERNAL TABLES LIKE 't2%';

+-------------------------------+------------------+---------------+-------------+-----------------------+---------+-----------------------------------------+------------------+------------------+-------+-----------+----------------------+
| created_on                    | name             | database_name | schema_name | owner                 | comment | location                                | file_format_name | file_format_type | cloud | region    | notification_channel |
|-------------------------------+------------------+---------------+-------------+-----------------------+---------+-----------------------------------------+------------------+------------------+-------+-----------+----------------------|
| 2018-08-06 06:00:42.340 -0700 | T2               | MYDB          | PUBLIC      | MYROLE                |         | @MYDB.PUBLIC.MYSTAGE/                   |                  | JSON             | AWS   | us-east-1 | NULL                 |
+-------------------------------+------------------+---------------+-------------+-----------------------+---------+-----------------------------------------+------------------+------------------+-------+-----------+----------------------+

DROP EXTERNAL TABLE t2;

+--------------------------+
| status                   |
|--------------------------|
| T2 successfully dropped. |
+--------------------------+

SHOW EXTERNAL TABLES LIKE 't2%';

+------------+------+---------------+-------------+-------+---------+----------+------------------+------------------+-------+--------+----------------------+
| created_on | name | database_name | schema_name | owner | comment | location | file_format_name | file_format_type | cloud | region | notification_channel |
|------------+------+---------------+-------------+-------+---------+----------+------------------+------------------+-------+--------+----------------------|
+------------+------+---------------+-------------+-------+---------+----------+------------------+------------------+-------+--------+----------------------+
Copy

Descartar a tabela novamente, mas não relatar um erro se a tabela não existir:

DROP EXTERNAL TABLE IF EXISTS t2;

+------------------------------------------------------------+
| status                                                     |
|------------------------------------------------------------|
| Drop statement executed successfully (T2 already dropped). |
+------------------------------------------------------------+
Copy