UNDROP TABLE
적용 대상: Databricks SQL Databricks Runtime 12.2 LTS 이상
이 UNDROP
명령은 Unity 카탈로그에 있는 관리 테이블 또는 외부 테이블이 실수로 삭제되는 문제를 해결합니다.
기본적으로 이 명령은 지정된 테이블 이름의 사용자가 소유한 가장 최근에 삭제된 테이블을 삭제 취소(복구)합니다.
부모 스키마 및 카탈로그가 있어야 합니다. 이 기능은 7일 보존 기간 내에 삭제된 테이블을 복구하도록 지원합니다.
같은 이름의 삭제된 테이블이 여러 개 있는 경우 SHOW TABLES DROPPED를 사용하여 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
SHOW TABLES DROPPED에 표시되는 테이블의 UUID 형식의 리터럴입니다.
사용 권한
UNDROP TABLE
에는 다음 기본 권한 중 하나가 필요합니다.
- 사용자는 테이블의 소유자이며 스키
CREATE TABLE
마USE SCHEMA
및USE CATALOG
카탈로그에 있습니다. - 사용자는 스키마의 소유자이며
USE CATALOG
카탈로그에 있습니다. - 사용자는 카탈로그의 소유자입니다.
- 사용자는 메타스토어의 소유자입니다.
- 사용자는 테이블에
MANAGE
를, 스키마에CREATE TABLE
및USE SCHEMA
를, 카탈로그에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