UNDROP TABLE
Gäller för: Databricks SQL
Databricks Runtime 12.2 LTS och senare
Kommandot UNDROP
åtgärdar problemet med att hanterade eller externa tabeller som finns i Unity Catalog tas bort av misstag.
Som standardinställning återställer det här kommandot den senast borttagna tabellen, som ägs av användaren av det angivna tabellnamnet.
Det överordnade schemat och katalogen måste finnas. Den här funktionen stöder återställning av borttagna tabeller inom en kvarhållningsperiod på 7 dagar.
Om det finns flera borttagna tabeller med samma namn kan du använda SHOW TABLES DROPPED för att identifiera tabell-ID:t och använda UNDROP TABLE WITH ID
för att återställa en specifik tabell.
Om det finns en tabell med samma namn som den tabell som du vill återställa använder du kommandot ALTER TABLE RENAME TO för att ändra namnet på den befintliga tabellen.
Tabellmetadata – till exempel tabellbehörigheter, kolumnspecifikation 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 tabellen har återställts.
Syntax
UNDROP TABLE { table_name | WITH ID table_id }
Parameter
-
Namnet på tabellen som ska återställas. Namnet får inte innehålla en temporal specifikation eller alternativspecifikation. Om tabellen inte kan hittas genererar Azure Databricks ett fel.
table_id
En
STRING
literal i form av ett UUID för tabellen som visas av SHOW TABLES DROPPED.
Behörigheter
UNDROP TABLE
kräver någon av följande grundläggande behörigheter:
- En användare är ägare till tabellen, har
CREATE TABLE
ochUSE SCHEMA
i schemat ochUSE CATALOG
i katalogen. - En användare är ägare till schemat och har
USE CATALOG
i katalogen. - En användare är ägare till katalogen.
- En användare är ägare till metaarkivet.
- En användare har
MANAGE
i tabellen,CREATE TABLE
ochUSE SCHEMA
i schemat ochUSE CATALOG
i katalogen.
Om en användare återställer en annan typ av tabell gäller ytterligare behörigheter.
Om du till exempel vill ta bort en extern tabell må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 tabellä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