Delen via


DROP-TABEL ONGEDAAN MAKEN

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 12.2 LTS en hoger

Met de UNDROP opdracht wordt het probleem opgelost van beheerde of externe tabellen in Unity Catalog die per ongeluk worden verwijderd of verwijderd. Met deze opdracht wordt standaard de laatst verwijderde tabel verwijderd die eigendom is van de gebruiker van de opgegeven tabelnaam (herstelt). Het bovenliggende schema en de catalogus moeten bestaan. Deze functie ondersteunt het herstellen van verwijderde tabellen binnen een bewaarperiode 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

  • Table_name

    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 en USE SCHEMA op het schema en USE 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