UNDROP TABLE
適用於: Databricks SQL Databricks Runtime 12.2 LTS 和更新版本
UNDROP
命令解決了意外卸除或刪除位於 Unity Catalog 之受控或外部表格的問題。
根據預設,此命令會取消卸除特定表格名稱使用者擁有之最近卸除的資料表。
父系結構描述和目錄必須存在。 此功能支援在 7 天保留期間內復原卸除的資料表。
如果有多個相同名稱的卸除數據表,您可以使用 SHOW TABLES DROPD 來識別數據表識別碼,並使用 UNDROP TABLE WITH ID
來復原特定數據表。
如果數據表的名稱與您想要復原的數據表相同,請使用 ALTER TABLE RENAME TO 命令來變更現有資料表的名稱。
將會復原數據表元數據,例如數據表許可權、數據行規格和屬性。
命令不會復原 UNDROP
主鍵和外鍵條件約束。
在復原數據表之後,使用 ALTER TABLE ADD CONSTRAINT 手動重新建立它們。
語法
UNDROP TABLE { table_name | WITH ID table_id }
參數
-
要還原之數據表的名稱。 名稱不得包含 時態規格或選項規格。 如果找不到數據表,Azure Databricks 就會引發錯誤。
table_id
STRING
表格 UUID 形式的常值,如 SHOW TABLES DROPD 所顯示。
權限
UNDROP TABLE
需要下列其中一個基本許可權:
- 使用者是數據表的擁有者、在
CREATE TABLE
架構上,USE SCHEMA
以及USE CATALOG
目錄的擁有者。 - 使用者是架構的擁有者,而且在目錄上具有
USE CATALOG
。 - 用戶是目錄的擁有者。
- 使用者是中繼存放區的擁有者。
如果使用者正在復原不同類型的數據表,則會套用其他許可權。
例如,若要取消卸除外部數據表,您也必須具有 CREATE EXTERNAL TABLE
必須存在的外部位置或記憶體認證。
執行此命令之後,擁有權預設為上一個數據表擁有者。
如有需要,可以使用 命令來變更 ALTER TABLE
擁有權。
範例
-- 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