DROP-TABEL ONGEDAAN MAKEN
Van toepassing op: Databricks SQL Databricks Runtime 12.2 LTS en hoger
Met de opdracht UNDROP
wordt het probleem opgelost van beheerde of externe tabellen in Unity Catalog die per ongeluk zijn weggelaten of verwijderd.
Met deze opdracht wordt standaard de laatst verwijderde tabel verwijderd (hersteld) die eigendom is van de gebruiker van de opgegeven tabelnaam.
Het bovenliggende schema en de catalogus moeten bestaan. Deze functie ondersteunt het herstellen van verwijderde tabellen binnen een retentieperiode van 7 dagen.
Als er meerdere verwijderde tabellen met dezelfde naam zijn, kunt u SHOW TABLES DROPPED gebruiken om de tabel-id te identificeren en UNDROP TABLE WITH ID
een specifieke tabel te herstellen.
Als er een tabel is met dezelfde naam als de tabel die u wilt herstellen, gebruikt u de opdracht ALTER TABLE RENAME TO om de naam van de bestaande tabel te wijzigen.
Tabelmetagegevens, zoals tabelbevoegdheden, kolomspecificatie en eigenschappen, worden hersteld.
Beperkingen voor primaire en refererende sleutels worden niet hersteld door de UNDROP
opdracht.
Maak ze handmatig opnieuw met ALTER TABLE ADD CONSTRAINT nadat de tabel is hersteld.
Syntaxis
UNDROP TABLE { table_name | WITH ID table_id }
Parameter
-
De naam van de tabel die moet worden hersteld. De naam mag geen tijdelijke specificatie bevatten. Als de tabel niet kan worden gevonden, treedt er een fout op in Azure Databricks.
table_id
Een
STRING
letterlijke waarde in de vorm van een UUID van de tabel, zoals weergegeven door SHOW TABLES DROPPED.
Machtigingen
UNDROP TABLE
vereist een van de volgende basismachtigingen:
- Een gebruiker is de eigenaar van de tabel, heeft
CREATE TABLE
enUSE SCHEMA
op het schema enUSE CATALOG
in de catalogus. - Een gebruiker is de eigenaar van het schema en heeft
USE CATALOG
deze in de catalogus. - Een gebruiker is de eigenaar van de catalogus.
- Een gebruiker is de eigenaar van de metastore.
Als een gebruiker een ander type tabel herstelt, zijn aanvullende machtigingen van toepassing.
Als u bijvoorbeeld een externe tabel wilt losmaken, moet u ook CREATE EXTERNAL TABLE
beschikken over de externe locatie of opslagreferentie, die moet bestaan.
Nadat u deze opdracht hebt uitgevoerd, wordt het eigendom standaard ingesteld op de vorige tabeleigenaar.
Indien nodig kan het eigendom worden gewijzigd met behulp van de ALTER TABLE
opdracht.
Voorbeelden
-- 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