UNDROP TABLE
Dotyczy: Databricks SQL 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
-
Nazwa table do przywrócenia. Nazwa nie może zawierać specyfikacji czasowej ani specyfikacji opcji. Jeśli nie można odnaleźć table, Azure Databricks zgłasza błąd.
table_id
Literał
STRING
w postaci identyfikatora UUID table wyświetlanego przez SHOW TABLES DROPPED.
Uprawnienia
UNDROP TABLE
wymaga jednego z następujących podstawowych uprawnień:
- Użytkownik jest właścicielem table, ma
CREATE TABLE
iUSE SCHEMA
w schemaiUSE 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
iUSE SCHEMA
w schemaiUSE 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