Udostępnij za pośrednictwem


UNDROP TABLE

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 12.2 LTS i nowsze

Polecenie UNDROP dotyczy problemu związanego z przypadkowym porzuceniem lub usunięciem zarządzanych lub zewnętrznych tables znajdujących się w środowisku Unity Catalog. Domyślnie to polecenie cofa (odzyskuje) ostatnio usunięte table należące do użytkownika danej nazwy table. Musi istnieć schema nadrzędna i catalog. Ta funkcja obsługuje odzyskiwanie usuniętych tables w ciągu okresu przechowywania trwającego 7 dni.

Jeśli istnieje wiele porzuconych tables o tej samej nazwie, możesz użyć SHOW TABLES DROPPED, aby zidentyfikować identyfikator table i użyć UNDROP TABLE WITH ID do odzyskania określonego table.

Jeśli istnieje table o tej samej nazwie co table, którą chcesz odzyskać, użyj polecenia ALTER TABLE RENAME TO, aby zmienić nazwę istniejącego table.

Table metadane — takie jak uprawnienia table, specyfikacje column i właściwości — zostaną odzyskane. Ograniczenia klucza podstawowego i obcego UNDROP nie są odzyskiwane przez polecenie . Utwórz je ręcznie używając ALTER TABLE ADD CONSTRAINT po odzyskaniu table.

Składnia

UNDROP TABLE { table_name | WITH ID table_id }

Parametr

Uprawnienia

UNDROP TABLE wymaga jednego z następujących podstawowych uprawnień:

  • Użytkownik jest właścicielem table, ma CREATE TABLE i USE SCHEMA w schemai USE CATALOG w catalog.
  • Użytkownik jest właścicielem schema i ma USE CATALOG na catalog.
  • Użytkownik jest właścicielem catalog.
  • Użytkownik jest właścicielem magazynu metadanych.
  • Użytkownik ma MANAGE w table, CREATE TABLE i USE SCHEMA w schemai USE CATALOG w catalog.

Jeśli użytkownik odzyskuje inny typ table, mają zastosowanie dodatkowe uprawnienia. Aby na przykład cofnąć zewnętrzne table, musisz również mieć CREATE EXTERNAL TABLE w lokalizacji zewnętrznej lub poświadczeniu magazynu, które muszą istnieć.

Po uruchomieniu tego polecenia własność przechodzi domyślnie na poprzedniego właściciela table. W razie potrzeby własność można zmienić przy użyciu ALTER TABLE polecenia .

Przykłady

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