UNDROP TABLE
Gilt für: Databricks SQL 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
-
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
undUSE SCHEMA
im Schema undUSE 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