Dela via


UNDROP TABLE

Gäller för:markerad ja Databricks SQL markerad ja 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

Behörigheter

UNDROP TABLE kräver någon av följande grundläggande behörigheter:

  • En användare äger table, har CREATE TABLE och USE SCHEMA på schemaoch USE 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 och USE SCHEMA på schemaoch USE 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