UNDROP SCHEMA

Restaure la version la plus récente d’un schéma détruit.

Voir aussi :

CREATE SCHEMA , ALTER SCHEMA , DESCRIBE SCHEMA , DROP SCHEMA , SHOW SCHEMAS

Syntaxe

UNDROP SCHEMA <name>
Copy

Paramètres

name

Spécifie l’identificateur du schéma à restaurer. Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Notes sur l’utilisation

  • Un schéma ne peut être restauré que dans la base de données qui contenait le schéma au moment de sa suppression. Par exemple, si vous créez et supprimez un schéma s1 dans la base de données db1, puis choisissez db2 comme base de données actuelle et tentez de restaurer le schéma s1 par ID (ou nom complet, db1.s1), le schéma s1 est restauré dans la base de données db1 plutôt que dans la base de données actuelle, db2.

  • Si un schéma portant le même nom existe déjà, une erreur est renvoyée.

  • La suppression des tables hybrides appartenant au schéma spécifié n’est pas annulée.

  • Si vous avez plusieurs schémas supprimés avec le même nom, vous pouvez utiliser le mot-clé IDENTIFIER avec l’identificateur généré par le système (à partir de Vue SCHEMATA) pour spécifier le schéma à restaurer. Le nom du schéma restauré reste le même. Voir des exemples.

    Note

    Vous ne pouvez utiliser l’identifiant généré par le système qu’avec le mot-clé IDENTIFIER() lors de l’exécution de la commande UNDROP pour les tables, les schémas et les bases de données.

Exemples

Exemple de base

Restaurer la version la plus récente d’un schéma détruit (cet exemple s’appuie sur les exemples fournis pour DROP SCHEMA) :

UNDROP SCHEMA myschema;
Copy
+----------------------------------------+
| status                                 |
|----------------------------------------|
| Schema MYSCHEMA successfully restored. |
+----------------------------------------+
SHOW SCHEMAS HISTORY;
Copy
+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+------------+
| created_on                      | name               | is_default | is_current | database_name | owner  | comment                                                   | options | retention_time | dropped_on |
|---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+------------|
| Fri, 13 May 2016 17:26:07 -0700 | INFORMATION_SCHEMA | N          | N          | MYTESTDB      |        | Views describing the contents of schemas in this database |         |              1 | [NULL]     |
| Tue, 17 Mar 2015 17:18:42 -0700 | MYSCHEMA           | N          | N          | MYTESTDB      | PUBLIC |                                                           |         |              1 | [NULL]     |
| Tue, 17 Mar 2015 16:57:04 -0700 | PUBLIC             | N          | Y          | MYTESTDB      | PUBLIC |                                                           |         |              1 | [NULL]     |
+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+------------+

UNDROP un schéma avec l’ID de schéma

Restaurer un schéma supprimé par ID en utilisant IDENTIFIER(). Vous pouvez trouver l’ID du schéma spécifique dont vous souhaitez annuler la suppression en utilisant la colonne schema_id dans Vue SCHEMATA. Par exemple, si vous avez plusieurs schémas supprimés nommés s1 et que vous souhaitez restaurer l’avant-dernier schéma supprimé s1, procédez comme suit :

  1. Trouver l’ID du schéma supprimé dans la vue SCHEMATA Account Usage :

    SELECT schema_id,
      schema_name,
      catalog_name,
      created,
      deleted,
      comment
    FROM SNOWFLAKE.ACCOUNT_USAGE.SCHEMATA
    WHERE schema_name = 'S1'
    AND catalog_name = 'DB1'
    AND deleted IS NOT NULL
    ORDER BY deleted;
    
    Copy
    +-----------+-------------+---------------+-------------------------------+-------------------------------+---------+
    | SCHEMA_ID | SCHEMA_NAME | CATALOG_NAME  | CREATED                       | DELETED                       | COMMENT |
    |-----------+-------------+---------------+-------------------------------+-------------------------------+---------|
    |       797 | S1          | DB1           | 2024-07-01 17:53:01.955 -0700 | 2024-07-01 17:53:11.889 -0700 | NULL    |
    |       798 | S1          | DB1           | 2024-07-01 17:53:11.889 -0700 | 2024-07-01 17:53:16.327 -0700 | NULL    |
    |       799 | S1          | DB1           | 2024-07-01 17:53:16.327 -0700 | 2024-07-01 17:53:25.066 -0700 | NULL    |
    +-----------+-------------+---------------+-------------------------------+-------------------------------+---------+
    
  2. Annuler la suppression du schéma s1 en utilisant l’ID de schéma. Pour restaurer l’avant-dernier schéma supprimé, utilisez l’ID 798 de schéma à partir de la sortie de l’instruction précédente. Après avoir exécuté l’instruction suivante, le schéma est restauré avec son nom d’origine, s1 :

    UNDROP SCHEMA IDENTIFIER(798);
    
    Copy