UNDROP TABLE
Gäller för: Databricks SQL Databricks Runtime 12.2 LTS och senare
Kommandot UNDROP
åtgärdar problemet med hanterade eller externa tables som är placerade i Unity Catalog, så att de inte tas bort av misstag.
Som standardinställning återställer det här kommandot den senast borttagna table som ägs av användaren med det angivna table namnet.
Den överordnade schema och catalog måste finnas. Den här funktionen stöder återställning av borttagna tables inom en återställningsperiod på 7 dagar.
Om det finns flera borttagna tables med samma namn kan du använda SHOW TABLES DROPPED för att identifiera table-ID:t och använda UNDROP TABLE WITH ID
för att återställa en specifik table.
Om det finns en table med samma namn som den table du vill återställa använder du kommandot ALTER TABLE RENAME TO för att ändra namnet på den befintliga table.
Table metadata – till exempel table privilegier, column spec och egenskaper – återställs.
Primär- och sekundärnyckelbegränsningar återställs inte av UNDROP
kommandot.
Återskapa dem manuellt med hjälp av ALTER TABLE ADD CONSTRAINT när table har återställts.
Syntax
UNDROP TABLE { table_name | WITH ID table_id }
Parameter
-
Namnet på table som ska återställas. Namnet får inte innehålla en temporal specifikation eller alternativspecifikation. Om table inte kan hittas genererar Azure Databricks ett fel.
table_id
En
STRING
literal i formen av ett UUID för table som visas av SHOW TABLES DROPPED.
Behörigheter
UNDROP TABLE
kräver någon av följande grundläggande behörigheter:
- En användare äger table, har
CREATE TABLE
ochUSE SCHEMA
på schemaochUSE CATALOG
på catalog. - En användare är ägare till schema och har
USE CATALOG
på catalog. - En användare är ägare till catalog.
- En användare är ägare till metaarkivet.
- En användare har
MANAGE
på table,CREATE TABLE
ochUSE SCHEMA
på schemaochUSE CATALOG
på catalog.
Om en användare återställer en annan typ av tablegäller ytterligare behörigheter.
Om du till exempel vill ta bort en extern tablemåste du också ha CREATE EXTERNAL TABLE
på den externa platsen eller lagringsautentiseringsuppgifterna, som måste finnas.
När du har kört det här kommandot återgår ägarskapet till den tidigare table ägaren.
Om det behövs kan ägarskapet ändras med hjälp av ALTER TABLE
kommandot .
Exempel
-- 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