Delen via


Verklaring van de Verenigde Naties over de Rechten van Boeren en Anderen die in Landelijke Gebieden Werken

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

De opdracht UNDROP lost het probleem op van beheerde of externe relaties (tabellen of gematerialiseerde weergaven) in Unity Catalog die per ongeluk worden verwijderd. Deze opdracht verwijdert standaard (herstelt) de laatst verwijderde relatie die eigendom is van de gebruiker van de opgegeven relationele naam. Het bovenliggende schema en de catalogus moeten bestaan. Deze functie ondersteunt het herstellen van verwijderde relaties binnen een bewaarperiode van 7 dagen.

Als er meerdere verbroken relaties van dezelfde naam zijn, kunt u SHOW TABLES DROPPED gebruiken om de tabel-id te identificeren en UNDROP TABLE WITH ID te gebruiken om een specifieke relatie te herstellen.

Als er een relatie is met dezelfde naam als de relatie die u wilt herstellen, gebruikt u ALTER TABLE NAAM WIJZIGEN IN opdracht om de naam van de bestaande relatie te wijzigen.

Tabelmetagegevens, zoals tabelbevoegdheden, kolomspecificatie en eigenschappen, worden hersteld. Beperkingen voor primaire en vreemde sleutels worden niet hersteld door de UNDROP opdracht. Maak ze handmatig opnieuw met behulp van ALTER TABLE ADD CONSTRAINT nadat de tabel is hersteld.

Syntaxis

UNDROP { MATERIALIZED VIEW | TABLE } { relation_name | WITH ID relation_id }

Parameter

  • MATERIALIZED VIEW

    Van toepassing op:aangevinkt Databricks SQL aangevinkt Databricks Runtime 16.2 en hoger

    Hiermee geeft u op dat de relatie relation_name die moet worden hersteld, een gerealiseerde weergave is.

  • TABLE

    Hiermee geeft u op dat de relatie relation_name die moet worden hersteld een tabel is.

  • relation_name

    De naam van de tabel of gematerialiseerde weergave die moet worden hersteld. De naam mag geen tijdelijke specificatie of optiesspecificatie bevatten. Als de relatie of het type niet zoals opgegeven is, dan genereert Azure Databricks WRONG_COMMAND_FOR_OBJECT_TYPE of TABLE_OR_VIEW_NOT_FOUND.

  • relation_id

    Een STRING-literal in de vorm van een UUID van de relatie, zoals weergegeven door SHOW TABLES DROPPED.

Machtigingen

UNDROP vereist een van de volgende basismachtigingen:

  • Een gebruiker is de eigenaar van de relatie, heeft CREATE TABLE en USE SCHEMA in het schema en USE CATALOG in de catalogus.
  • Een gebruiker is de eigenaar van het schema en heeft USE CATALOG in de catalogus.
  • Een gebruiker is de eigenaar van de catalogus.
  • Een gebruiker is de eigenaar van de metastore.
  • Een gebruiker heeft MANAGE in de tabel, CREATE TABLE en USE SCHEMA in het schema en USE CATALOG in de catalogus.

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 hebben op de externe locatie of opslagreferentie, die moet bestaan.

Nadat u deze opdracht hebt uitgevoerd, wordt het eigendom standaard ingesteld op de vorige relationele eigenaar. Indien nodig kan het eigendom worden gewijzigd met behulp van de opdracht ALTER TABLE of ALTER MATERIALIZED VIEW.

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

—- Create some MVs within a DLT pipeline
> CREATE MATERIALIZED VIEW mv1 AS SELECT * FROM RANGE(5);
> CREATE MATERIALIZED VIEW mv2 AS SELECT * FROM mv1;

—- Drop the MVs
> DROP MATERIALIZED VIEW mv1;
> DROP MATERIALIZED VIEW mv2;

-- UNDROP using the table name
> UNDROP MATERIALIZED VIEW mv1;
  OK

-- UNDROP WITH ID
–- Use SHOW TABLES DROPPED to find the dropped mv2’s tableId
—- Assume it is 6ca7be55-8f58-47a7-85ee-7a59082fd17a
-- When undropping, note that the table id will be a string surrounded by single quotation marks.
> UNDROP MATERIALIZED VIEW WITH ID '6ca7be55-8f58-47a7-85ee-7a59082fd17a';
  OK