UNDROP TABLE | Databricks on AWS [2023/6/12時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
適用対象: Databricks SQL、Databricksランタイム12.1以降
プレビュー
本機能はパブリックプレビューです。
UNDROP
コマンドは、Unity Catalogに格納されているマネージド、外部テーブルを不意にドロップ、削除した際の懸念に対応するものです。デフォルトでは、このコマンドは指定されたテーブルのもっとも最近に削除されたテーブルをundrop(リカバー)します。親のスキーマとカタログは存在している必要があります。この機能は、7日間の保持期間に含まれるテーブルのundropをサポートします。
同じ名前で削除されたテーブルが複数ある場合、テーブルIDを特定するためにSHOW TABLES DROPPEDを活用することができ、特定のテーブルをundropするためにUNDROP TABLE WITH ID
を使うことができます。
undropしたいテーブルと同じ名前のテーブルがある際、既存テーブルの名前を変更するためにALTER TABLE RENAME TOを使うことができます。
テーブルのアクセス権、カラムの仕様やプロパティのようなテーブルメタデータはリカバリーされます。主キーや外部キー制約はUNDROP
コマンドではリカバリーされません。テーブルをundropした後にALTER TABLE ADD CONSTRAINTを用いて手動で再作成してください。
構文
UNDROP TABLE { table_anme | WITH ID table_id }
パラメーター
-
復旧するテーブル名。名前にtemporal specificationを含めることはできません。テーブルが見つからない場合にはエラーが発生します。
-
table_id
SHOW TABLES DROPPEDで表示されるテーブルのUUIDの形式の
STRING
リテラル。
権限
UNDROP TABLE
には、以下のベース権限のいずれかが必要です:
- ユーザーがテーブルの所有者であり、スキーマに対する
CREATE TABLE
とUSE SCHEMA
権限、カタログに対するUSE CATALOG
権限を持っている。 - ユーザーはスキーマの所有者であり、カタログに対する
USE CATALOG
権限を持っている。 - ユーザーはカタログの所有者である。
- ユーザーはメタストアの所有者である。
ユーザー別のタイプのテーブルをundropする際には、追加の権限が適用されます。例えば、外部テーブルをundropする際には、存在している外部ロケーションやストレージ資格情報に対する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 SCHEMA 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