UNDROP TABLE
Se aplica a: Databricks SQL Databricks Runtime 12.2 LTS y versiones posteriores
El comando UNDROP
aborda la preocupación de las tablas administradas o externas ubicadas en Unity Catalog que se quiten o eliminen accidentalmente.
De manera predeterminada, este comando quita (recupera) la tabla quitada más recientemente que pertenece al usuario del nombre de tabla especificado.
El esquema primario y el catálogo deben existir. Esta característica admite la recuperación de tablas eliminadas dentro de un período de retención de 7 días.
Si hay varias tablas anuladas con el mismo nombre, puede usar SHOW TABLES DROPPED para identificar el identificador de tabla y usar UNDROP TABLE WITH ID
para recuperar una tabla específica.
Si hay una tabla con el mismo nombre que la tabla que desea recuperar, use el comando ALTER TABLE RENAME TO para cambiar el nombre de la tabla existente.
Los metadatos de tabla (como los privilegios de tabla, las especificaciones de columna y las propiedades) se recuperarán.
El comando UNDROP
no recupera las restricciones de clave principal y de referencia.
Vuelva a crearlas manualmente mediante ALTER TABLE ADD CONSTRAINT después de recuperar la tabla.
Sintaxis
UNDROP TABLE { table_name | WITH ID table_id }
Parámetro
-
El nombre de la tabla que se va a restaurar. El nombre no debe incluir una especificación temporal. Si la tabla no se puede encontrar, Azure Databricks genera un error.
table_id
Un
STRING
literal en forma de UUID de la tabla tal y como se muestra en SHOW TABLES DROPPED.
Permisos
UNDROP TABLE
requiere uno de los siguientes permisos de base:
- Un usuario es el propietario de la tabla, tiene
CREATE TABLE
yUSE SCHEMA
en el esquema yUSE CATALOG
en el catálogo. - Un usuario es el propietario del esquema y tiene
USE CATALOG
en el catálogo. - Un usuario es el propietario del catálogo.
- Un usuario es el propietario del metastore.
Si un usuario está recuperando un tipo diferente de tabla, se aplican permisos adicionales.
Por ejemplo, para anular una tabla externa, también debe tener CREATE EXTERNAL TABLE
en la ubicación externa o en la credencial de almacenamiento, que debe existir.
Después de ejecutar este comando, el valor predeterminado de propiedad es el propietario de la tabla anterior.
Si es necesario, la propiedad se puede cambiar mediante el comando ALTER TABLE
.
Ejemplos
-- 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