DROP SCHEMA

Supprime un schéma de la base de données actuelle/spécifiée.

Voir aussi :

CREATE SCHEMA , ALTER SCHEMA , DESCRIBE SCHEMA , SHOW SCHEMAS , UNDROP SCHEMA

Syntaxe

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

Paramètres

name

Spécifie l’identificateur du schéma à 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.

Si l’identificateur du schéma n’est pas complet (sous la forme de db_name.schema_name), la commande recherche le schéma dans la base de données actuelle de la session.

CASCADE | RESTRICT

Indique si le schéma peut être détruit s’il existe des clés étrangères qui font référence à des tables du schéma :

  • CASCADE détruit le schéma et tous les objets dans le schéma, 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 le schéma.

Par défaut : CASCADE

Notes sur l’utilisation

  • La destruction d’un schéma ne le supprime pas définitivement du système. Une version du schéma détruit est conservée dans Time Travel pendant le nombre de jours spécifié par le paramètre DATA_RETENTION_TIME_IN_DAYS du schéma :

    1. Pendant la période de conservation de Time Travel, un schéma détruit peut être restauré à l’aide de la commande UNDROP SCHEMA.

    2. Lorsque la période de conservation de Time Travel prend fin, l’état suivant du schéma détruit dépend de son caractère : permanent ou transitoire :

      • Un schéma permanent se déplace dans Fail-safe. Dans Fail-safe (7 jours), un schéma détruit peut être récupéré, mais seulement par Snowflake. Lorsque le schéma quitte Fail-safe, il est purgé.

      • Un schéma transitoire n’est associé à aucune période Fail-safe, il est donc purgé lorsqu’il dépasse la période Time Travel.

    3. Une fois qu’un schéma détruit a été purgé, il ne peut pas être récupéré ; il doit être recréé.

  • Actuellement, lorsqu’un schéma est détruit, la période de conservation des données pour les tables enfants, si elle est explicitement définie comme étant différente de la conservation du schéma, n’est pas respectée. Les tables enfant sont conservées pendant la même durée que le schéma. Pour respecter la période de conservation des données pour ces tables, il faut les détruire explicitement avant de détruire le schéma.

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

    1. Renommez la version actuelle du schéma sous un nom différent.

    2. Utilisez la commande UNDROP SCHEMA 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 du schéma 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.

Exemples

Détruisez un schéma nommé myschema (à partir des exemples CREATE SCHEMA) :

DROP SCHEMA myschema;

+--------------------------------+
| status                         |
|--------------------------------|
| MYSCHEMA successfully dropped. |
+--------------------------------+

SHOW SCHEMAS;

+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+
| created_on                      | name               | is_default | is_current | database_name | owner  | comment                                                   | options | retention_time |
|---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------|
| Fri, 13 May 2016 17:26:07 -0700 | INFORMATION_SCHEMA | N          | N          | MYTESTDB      |        | Views describing the contents of schemas in this database |         |              1 |
| Tue, 17 Mar 2015 16:57:04 -0700 | PUBLIC             | N          | Y          | MYTESTDB      | PUBLIC |                                                           |         |              1 |
+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+
Copy