UNDROP TABLE
適用対象: Databricks SQL Databricks Runtime 12.2 LTS 以降
UNDROP
コマンドを使うと、Unity Catalog にあるマネージド テーブルまたは外部テーブルが誤って破棄されたり削除されたりする問題に対処できます。
既定では、このコマンドを実行すると、指定したテーブル名のユーザーが所有する最後に削除されたテーブルが削除解除 (復旧) されます。
親スキーマとカタログが存在している必要があります。 この機能では、7 日間の保持期間内に削除されたテーブルの復旧がサポートされます。
削除された同じ名前のテーブルが複数ある場合は、SHOW TABLES DROPPED を使ってテーブル ID を確認し、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
SHOW TABLES DROPPED によって表示されるテーブルの UUID 形式の
STRING
リテラル。
アクセス許可
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