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>
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éesdb1
, puis choisissezdb2
comme base de données actuelle et tentez de restaurer le schémas1
par ID (ou nom complet,db1.s1
), le schémas1
est restauré dans la base de donnéesdb1
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.
UNDROP s’appuie sur la fonction Time Travel de Snowflake. Un objet ne peut être restauré que si l’objet a été supprimé dans la Période de conservation des données. La valeur par défaut est 24 heures.
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;
+----------------------------------------+
| status |
|----------------------------------------|
| Schema MYSCHEMA successfully restored. |
+----------------------------------------+
SHOW SCHEMAS HISTORY;
+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+------------+
| 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 :
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;
+-----------+-------------+---------------+-------------------------------+-------------------------------+---------+ | 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 | +-----------+-------------+---------------+-------------------------------+-------------------------------+---------+
Annuler la suppression du schéma
s1
en utilisant l’ID de schéma. Pour restaurer l’avant-dernier schéma supprimé, utilisez l’ID798
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);