Share via


UNDROP TABLE

Gilt für:Häkchen ja Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime 12.2 LTS und höher

Der UNDROP-Befehl befasst sich mit dem Problem, dass verwaltete oder externe Tabellen, die sich in Unity Catalog befinden, versehentlich gelöscht werden. Standardmäßig macht dieser Befehl die letzten Löschvorgang der Tabelle des Benutzers bzw. der Benutzerin des angegebenen Tabellennamens rückgängig (stellt sie wieder her). Das übergeordnete Schema und der Katalog müssen vorhanden sein. Dieses Feature unterstützt die Wiederherstellung gelöschter Tabellen innerhalb eines Aufbewahrungszeitraums von sieben Tagen.

Wenn mehrere gelöschte Tabellen mit demselben Namen vorhanden sind, können Sie SHOW TABLES DROPPED verwenden, um die Tabellen-ID zu identifizieren, und UNDROP TABLE WITH ID, um eine bestimmte Tabelle wiederherzustellen.

Wenn eine Tabelle mit demselben Namen wie die wiederherzustellende Tabelle vorhanden ist, verwenden Sie den Befehl ALTER TABLE RENAME TO, um den Namen der vorhandenen Tabelle zu ändern.

Tabellenmetadaten, z. B. Tabellenberechtigungen, Spaltenspezifikationen und Eigenschaften, werden wiederhergestellt. Primär- und Fremdschlüsseleinschränkungen werden vom UNDROP-Befehl nicht wiederhergestellt. Erstellen Sie sie manuell mit ALTER TABLE ADD CONSTRAINT neu, nachdem die Tabelle wiederhergestellt wurde.

Syntax

UNDROP TABLE { table_name | WITH ID table_id }

Parameter

  • table_name

    Der Name der wiederherzustellenden Tabelle. Der Name darf keine temporale Spezifikation enthalten. Wenn die Tabelle nicht gefunden wird, löst Azure Databricks einen Fehler aus.

  • table_id

    Ein STRING-Literal in Form einer UUID der Tabelle, wie von SHOW TABLES DROPPED angezeigt

Berechtigungen

UNDROP TABLE erfordert eine der folgenden grundlegenden Berechtigungen:

  • Ein*e Benutzer*in ist im Besitz der Tabelle, hat CREATE TABLE und USE SCHEMA im Schema und USE CATALOG im Katalog.
  • Ein*e Benutzer*in ist im Besitze des Schemas und besitzt USE CATALOG für den Katalog.
  • Ein*e Benutzer*in ist im Besitz des Katalogs.
  • Ein*e Benutzer*in ist im Besitz des Metastores.

Wenn ein*e Benutzer*in einen anderen Tabellentyp wiederherstellen will, gelten zusätzliche Berechtigungen. Um z. B. eine externe Tabelle wiederherstellen zu können, müssen Sie auch über CREATE EXTERNAL TABLE für den externen Speicherort oder über Speicheranmeldeinformationen verfügen, die vorhanden sein müssen.

Nach dem Ausführen dieses Befehls wird der*die Besitzer*in standardmäßig auf den*die vorherige*n Tabellenbesitzer*in festgelegt. Bei Bedarf kann der Besitz mithilfe des ALTER TABLE-Befehls geändert werden.

Beispiele

-- 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