DROP DATABASE

Supprime une base de données du système.

Voir aussi :

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

Syntaxe

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

Paramètres

name

Spécifie l’identificateur de la base de données à détruire. Si l’identificateur contient des espaces, des caractères spéciaux ou des caractères majuscules et minuscules, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.

CASCADE | RESTRICT

Indique si la base de données peut être détruite s’il existe des clés étrangères qui font référence à des tables de la base de données :

  • CASCADE détruit la base de données et tous les objets dans la base de données, y compris les tables avec des clés primaires/uniques qui sont référencées par des clés étrangères dans d’autres tables.

  • RESTRICT renvoie un avertissement sur les références de clés étrangères existantes et ne détruit pas la base de données.

Par défaut : CASCADE

Notes sur l’utilisation

  • La destruction d’une base de données ne la supprime pas définitivement du système. Une version de la base de données détruite est conservée dans Time Travel pendant le nombre de jours spécifié par le paramètre DATA_RETENTION_TIME_IN_DAYS de la base de données :

    1. Pendant la période de conservation de Time Travel, une base de données détruite peut être restaurée à l’aide de la commande UNDROP DATABASE.

    2. Lorsque la période de conservation de Time Travel prend fin, l’état suivant de la base de données détruite dépend de son caractère : permanente ou transitoire :

      • Une base de données permanente se déplace dans Fail-safe. Dans Fail-safe (7 jours), une base de données détruite peut être récupérée, mais seulement par Snowflake. Lorsque la base de données quitte Fail-safe, elle est purgée.

      • Une base de données transitoire n’est associée à aucune période Fail-safe, elle est donc purgée lorsqu’elle dépasse la période Time Travel.

    3. Une fois qu’une base de données détruite a été purgée, elle ne peut pas être récupérée ; elle doit être recréée.

  • Actuellement, lorsqu’une base de données est détruite, la période de conservation des données pour les schémas ou les tables enfants, si elle est explicitement définie comme étant différente de la conservation de la base de données, n’est pas respectée. Les schémas ou tables enfants sont conservés pendant la même durée que la base de données. Pour respecter la période de conservation des données pour ces objets enfants (schémas ou tables), il faut les supprimer explicitement avant de détruire la base de données ou le schéma.

  • Après la destruction d’une base de données, la création d’une base de données portant le même nom crée une nouvelle version de la base de données. La version détruite de l’ancienne base de données peut encore être restaurée à l’aide de la méthode suivante :

    1. Renommez la version actuelle de la base de données sous un nom différent.

    2. Utilisez la commande UNDROP DATABASE pour restaurer la version précédente.

  • Si une politique ou une balise est associée à une colonne de table ou de vue, la destruction de la base de données nécessite que la politique ou la balise soit autonome dans la base de données et le schéma. Par exemple, database_1 contient policy_1 et policy_1 n’est utilisé que dans database_1. Sinon, une référence pendante se produit.

  • L’opération DROP échoue si une politique de session ou une politique de mot de passe est définie sur un utilisateur ou un compte.

Notes sur l’utilisation de la réplication de base de données

  • Vous pouvez détruire une base de données secondaire à tout moment. Seul le propriétaire de la base de données (c’est-à-dire le rôle doté du privilège OWNERSHIP sur la base de données) peut détruire la base de données.

  • Une base de données principale ne peut pas être supprimée s’il existe au moins un réplica de la base de données (c.-à-d. des bases de données secondaires). Pour détruire la base de données principale, commencez par promouvoir une base de données secondaire, afin qu’elle serve de base de données principale, puis détruisez l’ancienne base de données principale. Vous pouvez également détruire toutes les bases de données secondaires de la base de données principale, puis détruire la base de données principale.

    Notez que seul le propriétaire de la base de données peut détruire la base de données.

Exemples

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