Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Databricks SQL
Databricks Runtime 12.2 LTS a novější
Příkaz UNDROP se zabývá obavou, že spravované nebo externí relace (tabulky nebo materializovaná zobrazení) umístěné v Unity Katalogu mohou být omylem odstraněny nebo smazány.
Ve výchozím nastavení tento příkaz vrátí zpět (obnoví) naposledy vyřazený vztah vlastněný uživatelem daného názvu relace.
Nadřazené schéma a katalog musí existovat. Tato funkce podporuje obnovení ukončených relací během 7denní doby uchovávání.
Pokud existuje několik vyřazených relací stejného názvu, můžete pomocí SHOW TABLES DROPPED identifikovat ID tabulky a pomocí UNDROP TABLE WITH ID obnovit konkrétní relaci.
Pokud existuje vztah se stejným názvem jako relace, kterou chcete obnovit, použijte příkaz ALTER TABLE PŘEJMENOVAT na změnit název existující relace.
Metadata tabulky , jako jsou oprávnění tabulky, specifikace sloupce a vlastnosti, se obnoví.
Příkaz UNDROP neobnoví omezení primárního a cizího klíče.
Po obnovení tabulky je znovu vytvořte ručně pomocí ALTER TABLE ADD CONSTRAINT.
Syntaxe
UNDROP { MATERIALIZED VIEW | TABLE } { relation_name | WITH ID relation_id }
Parametr
MATERIALIZED VIEWplatí pro:
Databricks SQL
Databricks Runtime 16.2 a novějšíUrčuje, že vztah
relation_name, který má být obnoven, je materializované zobrazení.TABLEUrčuje, že relační
relation_name, která se má obnovit, je tabulka.-
Název tabulky, která se má obnovit. Název nesmí obsahovat dočasnou specifikaci ani specifikaci možností. Pokud nelze najít vztah nebo typ podle specifikace, Azure Databricks vyvolá chybu
WRONG_COMMAND_FOR_OBJECT_TYPEneboTABLE_OR_VIEW_NOT_FOUND. relation_idLiterál
STRINGve formě UUID relace, jak ji zobrazuje SHOW TABLES DROPPED.
Oprávnění
UNDROP vyžaduje jednu z následujících základních oprávnění:
- Uživatel je vlastníkem relace, má
CREATE TABLEaUSE SCHEMAschématu aUSE CATALOGv katalogu. - Uživatel je vlastníkem schématu a má
USE CATALOGv katalogu. - Uživatel je vlastníkem katalogu.
- Uživatel je vlastníkem datového úložiště (metastore).
- Uživatel má
MANAGEna tabulce,CREATE TABLEaUSE SCHEMAna schématu aUSE CATALOGv katalogu.
Pokud uživatel obnovuje jiný typ tabulky, použijí se další oprávnění.
Pokud chcete například vrátit zpět externí tabulku, musíte mít také CREATE EXTERNAL TABLE pro externí umístění nebo přihlašovací údaje k úložišti, které musí být existující.
Po spuštění tohoto příkazu se vlastnictví ve výchozím nastavení nastaví na předchozího vlastníka relace. V případě potřeby je možné vlastnictví změnit pomocí příkazu ALTER TABLE nebo ALTER MATERIALIZED VIEW.
Omezení
Materializovaná zobrazení a streamované tabulky je možné obnovit pouze v případě, že podkladový datový kanál stále existuje. Pokud bylo odstraněno podpůrné potrubí, nelze materializované zobrazení nebo streamovací tabulku obnovit.
Nelze obnovit materializovanou tabulku nebo tabulku streamování vytvořenou pomocí Databricks SQL. Je možné obnovit pouze materializovaná zobrazení nebo streamované tabulky vytvořené pomocí kanálu ETL. Materializovaná zobrazení můžete obnovit pouze podle ID, nikoli podle názvu.
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
-- Assume the following commands created MVs in an ETL 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 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