TABLE UNDROP
S’applique à : Databricks SQL Databricks Runtime 12.2 LTS et versions ultérieures
La commande UNDROP
répond au problème de suppression ou d’annulation accidentelle des tables managées ou externes situées dans Unity Catalog.
Par défaut, cette commande supprime (récupère) la table la plus récemment supprimée appartenant à l’utilisateur du nom de table donné.
Le schéma parent et le catalogue doivent exister. Cette fonctionnalité prend en charge la récupération des tables supprimées pour une période de rétention de 7 jours.
S’il existe plusieurs tables supprimées du même nom, vous pouvez utiliser SHOW TABLES DROPPED pour identifier l’identifiant de table et utiliser UNDROP TABLE WITH ID
pour récupérer une table spécifique.
S’il existe une table portant le même nom que la table que vous souhaitez récupérer, utilisez la commande ALTER TABLE RENAME TO pour modifier le nom de la table existante.
Les métadonnées de table, telles que les privilèges de table, les spécifications de colonne et les propriétés, seront récupérées.
Les contraintes de clé primaire et étrangère ne sont pas récupérées par la commande UNDROP
.
Recréez-les manuellement à l’aide de ALTER TABLE ADD CONSTRAINT une fois la table récupérée.
Syntaxe
UNDROP TABLE { table_name | WITH ID table_id }
Paramètre
-
Le nom du tableau à récupérer. Le nom ne doit pas inclure de spécification temporelle ou de spécification d’options. Si la table est introuvable, Azure Databricks déclenche une erreur.
table_id
Littéral
STRING
sous la forme d’un UUID de la table, tel qu’affiché par SHOW TABLES DROPPED.
Autorisations
UNDROP TABLE
requiert l'une des autorisations de base suivantes :
- Un utilisateur est le propriétaire de la table, a
CREATE TABLE
etUSE SCHEMA
sur le schéma etUSE CATALOG
sur le catalogue. - Un utilisateur est le propriétaire du schéma et a
USE CATALOG
sur le catalogue. - Un utilisateur est le propriétaire du catalogue.
- Un utilisateur est le propriétaire du metastore.
- Un utilisateur a
MANAGE
sur la table,CREATE TABLE
etUSE SCHEMA
sur le schéma etUSE CATALOG
sur le catalogue.
Si un utilisateur récupère un autre type de table, des autorisations supplémentaires s’appliquent.
Par exemple, pour restaurer une table externe, vous devez également disposer de CREATE EXTERNAL TABLE
sur l’emplacement externe ou les informations d’identification de stockage, qui doivent exister.
Après avoir exécuté cette commande, la propriété revient par défaut au propriétaire de la table précédente.
Si nécessaire, la propriété peut être modifiée à l’aide de la commande ALTER TABLE
.
Exemples
-- UNDROP using the table name
> CREATE TABLE my_catalog.my_schema.my_table (id INT, name STRING);
> DROP TABLE my_catalog.my_schema.my_table;
> UNDROP TABLE my_catalog.my_schema.my_table;
OK
-- UNDROP WITH ID
– Use SHOW TABLES DROPPED to find dropped tables
> SHOW TABLES DROPPED IN my_schema;
catalogname schemaname tablename tableid tabletype deletedat createdat updatedat createdby owner comment
----------- ---------- ---------- ------------------------------------ --------- ----------------------------- ----------------------------- ----------------------------- ------------- ------------- -------
my_catalog my_schema my_table 6ca7be55-8f58-47a7-85ee-7a59082fd17a managed 2023-05-03 AD at 18:17:56 UTC 2023-05-03 AD at 18:17:00 UTC 2023-05-03 AD at 18:17:00 UTC alf@melmak.et alf@melmak.et
my_catalog my_schema my_table b819f397-c51f-4e60-8acc-05d4d4a7e084 managed 2023-05-04 AD at 10:20:00 UTC 2023-05-04 AD at 08:20:00 UTC 2023-05-04 AD at 08:20:00 UTC alf@melmak.et alf@melmak.et
–- Undrop a specific dropped table.
–- Here, we undrop my_table with table id '6ca7be55-8f58-47a7-85ee-7a59082fd17a'.
-- Note that the table id will be a string surrounded by single quotation marks.
> UNDROP TABLE WITH ID '6ca7be55-8f58-47a7-85ee-7a59082fd17a';
OK
– Continuing from the example above, Now we want to undrop table with ID 'b819f397-c51f-4e60-8acc-05d4d4a7e084'.
- First, we rename the existing table
> ALTER TABLE my_table RENAME TO my_other_table
OK
- Then we can undrop table with the name my_table
> UNDROP TABLE WITH ID 'b819f397-c51f-4e60-8acc-05d4d4a7e084'
OK