UNDROP TABLE
Platí pro: Databricks SQL Databricks Runtime 12.2 LTS a vyšší
Příkaz UNDROP
řeší problém se spravovanými nebo externími tabulkami umístěnými v katalogu Unity, které se omylem vyřadí nebo odstraní.
Ve výchozím nastavení tento příkaz vrátí zpět (obnoví) naposledy vyřazenou tabulku vlastněnou uživatelem daného názvu tabulky.
Nadřazené schéma a katalog musí existovat. Tato funkce podporuje obnovení vyřazených tabulek během 7denní doby uchovávání.
Pokud existuje několik vyřazených tabulek se stejným názvem, můžete pomocí funkce SHOW TABLES DROPPED identifikovat ID tabulky a použít UNDROP TABLE WITH ID
k obnovení konkrétní tabulky.
Pokud existuje tabulka se stejným názvem jako tabulka, kterou chcete obnovit, pomocí příkazu ALTER TABLE RENAME TO změňte název existující tabulky.
Metadata tabulky , jako jsou oprávnění tabulky, specifikace sloupce a vlastnosti, se obnoví.
Omezení primárního a cizího klíče nejsou příkazem obnovena UNDROP
.
Po obnovení tabulky je znovu vytvořte ručně pomocí ALTER TABLE ADD CONSTRAINT .
Syntaxe
UNDROP TABLE { table_name | WITH ID table_id }
Parametr
-
Název tabulky, která se má obnovit. Název nesmí obsahovat dočasnou specifikaci ani specifikaci možností. Pokud se tabulka nenašla, Azure Databricks vyvolá chybu.
table_id
STRING
Literál ve formě UUID tabulky, jak je znázorněno funkcí SHOW TABLES DROPPED.
Oprávnění
UNDROP TABLE
vyžaduje jednu z následujících základních oprávnění:
- Uživatel je vlastníkem tabulky, má
CREATE TABLE
schéma aUSE SCHEMA
USE CATALOG
katalog. - Uživatel je vlastníkem schématu a má
USE CATALOG
ho v katalogu. - Uživatel je vlastníkem katalogu.
- Uživatel je vlastníkem metastoru.
Pokud uživatel obnovuje jiný typ tabulky, použijí se další oprávnění.
Pokud například chcete vrátit zpět externí tabulku, musíte mít CREATE EXTERNAL TABLE
také přihlašovací údaje k externímu umístění nebo úložišti, které musí existovat.
Po spuštění tohoto příkazu se vlastnictví ve výchozím nastavení nastaví na předchozího vlastníka tabulky.
V případě potřeby je možné vlastnictví změnit pomocí ALTER TABLE
příkazu.
Příklady
-- 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