UNDROP TABLE
적용 대상: Databricks SQL Databricks Runtime 12.2 LTS 이상
UNDROP
명령은 Unity Catalog에 있는 관리되거나 외부의 tables이 실수로 삭제되거나 손실되는 문제를 해결합니다.
기본적으로 이 명령은 지정된 table 이름의 사용자가 소유한 가장 최근에 삭제된 table을 복구합니다.
부모 schema 및 catalog는 반드시 존재해야 합니다. 이 기능은 7일 보존 기간 내에 삭제된 tables 복구를 지원합니다.
같은 이름의 삭제된 tables 여러 개 있는 경우 SHOW TABLES DROPPED 사용하여 table ID를 식별하고 UNDROP TABLE WITH ID
사용하여 특정 table복구할 수 있습니다.
복구하려는 table과 이름이 같은 table가 있는 경우, ALTER TABLE RENAME TO 명령을 사용하여 기존의 table의 이름을 변경합니다.
table 권한, column 사양 및 속성과 같은 Table 메타데이터가 복구됩니다.
기본 및 외래 키 제약 조건은 명령에 의해 UNDROP
복구되지 않습니다.
table이 복구된 후 ALTER TABLE ADD CONSTRAINT을 사용하여 수동으로 다시 만드십시오.
구문
UNDROP TABLE { table_name | WITH ID table_id }
매개 변수
-
복원할 table 이름입니다. 이름에는 임시 사양 또는 옵션 사양이 포함되어서는 안됩니다. table 찾을 수 없으면 Azure Databricks에서 오류가 발생합니다.
table_id
SHOW TABLES DROPPED에 의해 표시된 table의 UUID 형식으로 된
STRING
리터럴입니다.
사용 권한
UNDROP TABLE
에는 다음 기본 권한 중 하나가 필요합니다.
- 사용자는 table의 소유자이며, schema에
CREATE TABLE
과USE SCHEMA
가 있고, catalog에USE CATALOG
가 있습니다. - 사용자는 schema의 소유자이며 catalog에
USE CATALOG
을 가지고 있습니다. - catalog의 소유자는 사용자입니다.
- 사용자는 메타스토어의 소유자입니다.
- 사용자는 table에
MANAGE
가 있고, schema에CREATE TABLE
및USE SCHEMA
가 있으며, catalog에USE CATALOG
가 있습니다.
사용자가 다른 유형의 table복구하는 경우 추가 권한이 적용됩니다.
예를 들어, 외부 table를 복구하려면 외부 위치 또는 스토리지 자격 증명에 대한 CREATE EXTERNAL TABLE
이 있어야 합니다.
이 명령을 실행한 후 소유권은 기본적으로 이전 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