DROP ICEBERG TABLE

Remove uma tabela Iceberg do esquema atual/especificado, mas mantém uma versão da tabela Iceberg para que possa ser recuperada usando UNDROP ICEBERG TABLE. Para mais informações, consulte Notas de uso (neste tópico).

Observe que este tópico se refere às tabelas Iceberg simplesmente como “tabelas”, exceto onde a especificação de tabelas Iceberg evita confusão.

Consulte também:

CREATE ICEBERG TABLE , SHOW ICEBERG TABLES , UNDROP ICEBERG TABLE

Sintaxe

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

Parâmetros

name

Especifica o identificador da tabela 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 não estiver totalmente qualificado (na forma de db_name.schema_name.table_name ou schema_name.table_name), o comando procura a tabela no esquema atual para a sessão.

CASCADE | RESTRICT

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

  • CASCADE descarta a tabela mesmo que a tabela 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 estrangeiras existentes e não descarta a tabela.

Padrão: CASCADE

Requisitos de controle de acesso

Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:

Privilégio

Objeto

Notas

OWNERSHIP

Tabela Iceberg

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

USAGE

Volume externo

USAGE

Integração (catálogo)

Obrigatório se a tabela Iceberg usar uma integração de catálogo.

Observe que operar em qualquer objeto de um esquema também requer o privilégio USAGE no banco de dados e esquema principais.

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Notas de uso

  • O descarte de uma tabela não a remove permanentemente do sistema. O Snowflake retém uma versão da tabela descartada no Time Travel pelo número de dias especificado pelo parâmetro DATA_RETENTION_TIME_IN_DAYS para a tabela. Para obter mais informações, consulte Metadados e instantâneos para tabelas Iceberg.

  • Dentro do período de retenção do Time Travel, você pode restaurar uma tabela descartada usando o comando UNDROP ICEBERG TABLE.

  • Depois que a tabela descartada for eliminada, ela não pode ser recuperada; ela deverá ser recriada.

  • Depois de descartar uma tabela, criar uma tabela com o mesmo nome cria uma nova versão da tabela. Você pode restaurar a versão descartada da tabela anterior com as seguintes etapas:

    1. Renomear a versão atual da tabela com um nome diferente.

    2. Use o comando UNDROP ICEBERG TABLE para restaurar a versão anterior.

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

Exemplos

Descartar uma tabela:

DROP ICEBERG TABLE t2;

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

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

DROP ICEBERG TABLE IF EXISTS t2;

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