Sdílet prostřednictvím


UNDROP TABLE

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano 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

  • table_name

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