COFANIE TABELI
Dotyczy: Databricks SQL Databricks Runtime 12.2 LTS i nowsze
Polecenie UNDROP
rozwiązuje problem z zarządzanymi lub zewnętrznymi tabelami znajdującymi się w usłudze Unity Catalog, które zostały przypadkowo pominięte lub usunięte.
Domyślnie to polecenie anuluje usunięcie, tj. odzyskuje ostatnio usuniętą tabelę należącą do użytkownika danej nazwy tabeli.
Musi istnieć schemat nadrzędny i wykaz. Ta funkcja obsługuje odzyskiwanie usuniętych tabel w ciągu 7-dniowego okresu przechowywania.
Jeśli istnieje wiele porzuconych tabel o tej samej nazwie, możesz użyć funkcji SHOW TABLES DROPPED , aby zidentyfikować identyfikator tabeli i użyć polecenia UNDROP TABLE WITH ID
w celu odzyskania określonej tabeli.
Jeśli istnieje tabela o takiej samej nazwie jak tabela, którą chcesz odzyskać, użyj polecenia ALTER TABLE RENAME TO , aby zmienić nazwę istniejącej tabeli.
Metadane tabeli — takie jak uprawnienia tabeli, specyfikacje kolumn i właściwości — zostaną odzyskane.
Ograniczenia klucza podstawowego i obcego UNDROP
nie są odzyskiwane przez polecenie .
Utwórz je ponownie ręcznie przy użyciu polecenia ALTER TABLE ADD CONSTRAINT po odzyskaniu tabeli.
Składnia
UNDROP TABLE { table_name | WITH ID table_id }
Parametr
-
Nazwa tabeli do przywrócenia. Nazwa nie może zawierać specyfikacji czasowej ani specyfikacji opcji. Jeśli nie można odnaleźć tabeli usługi Azure Databricks, wystąpi błąd.
table_id
Literał
STRING
w postaci identyfikatora UUID tabeli wyświetlanego przez funkcję SHOW TABLES DROPPED.
Uprawnienia
UNDROP TABLE
wymaga jednego z następujących podstawowych uprawnień:
- Użytkownik jest właścicielem tabeli, ma
CREATE TABLE
USE SCHEMA
i w schemacie orazUSE CATALOG
w wykazie. - Użytkownik jest właścicielem schematu i znajduje się
USE CATALOG
w wykazie. - Użytkownik jest właścicielem wykazu.
- Użytkownik jest właścicielem magazynu metadanych.
- Użytkownik ma
MANAGE
w tabeli,CREATE TABLE
iUSE SCHEMA
w schemacie orazUSE CATALOG
w wykazie.
Jeśli użytkownik odzyskuje inny typ tabeli, mają zastosowanie dodatkowe uprawnienia.
Aby na przykład cofnąć tabelę zewnętrzną, musisz również mieć CREATE EXTERNAL TABLE
poświadczenia lokalizacji zewnętrznej lub magazynu, które muszą istnieć.
Po uruchomieniu tego polecenia własność jest domyślna dla poprzedniego właściciela tabeli.
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