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 att hanterade eller externa tabeller som finns i Unity Catalog oavsiktligt utesluts eller tas bort. Som standard återställer det här kommandot den senast uteslutna 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 VISA TABELLER SOM SLÄPPTs 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 ÄNDRA TABELL LÄGG TILL VILLKOR när tabellen har återställts.

Syntax

UNDROP TABLE { table_name | WITH ID table_id }

Parameter

  • Table_name

    Namnet på tabellen som ska återställas. Namnet får inte innehålla någon temporal specifikation. Om tabellen inte kan hittas genererar Azure Databricks ett fel.

  • table_id

    En STRING literal i form av ett UUID i tabellen som visas av VISA BORTTAGNA TABELLER.

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 och USE SCHEMA i schemat och USE 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.

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 är ägarskapet som standard 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