DROP DATABASE

Remove um banco de dados do sistema.

Consulte também:

CREATE DATABASE , ALTER DATABASE , DESCRIBE DATABASE , SHOW DATABASES , UNDROP DATABASE

Sintaxe

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

Parâmetros

name

Especifica o identificador do banco de dados a ser descartado. 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.

CASCADE | RESTRICT

Especifica se o banco de dados pode ser descartado caso existam chaves estrangeiras que façam referência a qualquer tabela no banco de dados:

  • CASCADE descarta o banco de dados e todos os objetos do banco, incluindo tabelas com 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 o banco de dados.

Padrão: CASCADE

Notas de uso

  • O descarte de um banco de dados não o remove permanentemente do sistema. Uma versão do banco de dados descartado é mantida no Time Travel pelo número de dias especificado pelo parâmetro DATA_RETENTION_TIME_IN_DAYS para o banco de dados:

    1. Dentro do período de retenção de Time Travel, um banco de dados descartado pode ser restaurado usando o comando UNDROP DATABASE.

    2. Quando o período de retenção do Time Travel terminar, o próximo estado do banco de dados descartado dependerá se ele é permanente ou transitório:

      • Um banco de dados permanente é movido para Fail-safe. No Fail-safe (7), um banco de dados descartado pode ser recuperado, mas somente pelo Snowflake. Quando o banco de dados deixa o Fail-safe, ele é purgado.

      • Um banco de dados transitório não tem Fail-safe, portanto é purgado quando sai do Time Travel.

    3. Depois que o banco de dados descartado for purgado, ele não pode ser recuperado; ele deve ser recriado.

  • Atualmente, quando um banco de dados é descartado, não é seguido o período de retenção de dados de esquemas ou tabelas filhos, caso tenha sido explicitamente definido para ser diferente da retenção do banco de dados. Os esquemas ou tabelas filhos são retidos pelo mesmo período que o banco de dados. Para respeitar o período de retenção de dados desses objetos filhos (esquemas ou tabelas), descarte-os explicitamente antes de descartar o banco de dados ou esquema.

  • Depois de descartar um banco de dados, criar um banco de dados com o mesmo nome cria um novo banco de dados. A versão descartada do banco de dados anterior ainda pode ser restaurada usando o seguinte método:

    1. Renomeie a versão atual do banco de dados com um nome diferente.

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

  • Se uma política ou tag for anexada a uma tabela ou coluna de exibição, o descarte do banco de dados com sucesso exige que a política ou tag seja autocontida no banco de dados e do esquema. Por exemplo, database_1 contém policy_1 e policy_1 só é usada em database_1. Caso contrário, ocorre uma referência pendente.

  • A operação DROP falha se uma política de sessão ou de senhas for definida em um usuário ou na conta.

Notas de uso da replicação de banco de dados

  • Você pode descartar um banco de dados secundário a qualquer momento. Somente o proprietário do banco de dados (ou seja, a função com o privilégio OWNERSHIP no banco de dados) pode descartar o banco de dados.

  • Um banco de dados primário não pode ser descartado se houver uma ou mais réplicas do banco de dados (ou seja, bancos de dados secundários). Para descartar o banco de dados primário, primeiro promova um banco de dados secundário para servir como banco de dados primário e depois descarte o antigo banco de dados primário. Alternativamente, descarte todos os bancos de dados secundários do banco de dados primário e depois descarte o banco de dados primário.

    Note que somente o proprietário do banco de dados pode descartar o banco.

Exemplos

DROP DATABASE mytestdb2;

+---------------------------------+
| status                          |
|---------------------------------|
| MYTESTDB2 successfully dropped. |
+---------------------------------+

SHOW DATABASES LIKE 'mytestdb2';

+------------+------+------------+------------+--------+-------+---------+---------+----------------+
| created_on | name | is_default | is_current | origin | owner | comment | options | retention_time |
|------------+------+------------+------------+--------+-------+---------+---------+----------------|
+------------+------+------------+------------+--------+-------+---------+---------+----------------+

SHOW DATABASES HISTORY LIKE 'mytestdb2';

+---------------------------------+-----------+------------+------------+--------+--------+---------+---------+----------------+---------------------------------+
| created_on                      | name      | is_default | is_current | origin | owner  | comment | options | retention_time | dropped_on                      |
|---------------------------------+-----------+------------+------------+--------+--------+---------+---------+----------------+---------------------------------|
| Wed, 25 Feb 2015 16:16:54 -0800 | MYTESTDB2 | N          | N          |        | PUBLIC |         |         |              1 | Fri, 13 May 2016 17:35:09 -0700 |
+---------------------------------+-----------+------------+------------+--------+--------+---------+---------+----------------+---------------------------------+
Copy