다음을 통해 공유


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 }

매개 변수

  • table_name

    복원할 테이블의 이름입니다. 이름에는 임시 사양 또는 옵션 사양이 포함되어서는 안됩니다. 테이블을 찾을 수 없으면 Azure Databricks에서 오류가 발생합니다.

  • table_id

    STRING SHOW TABLES DROPPED에 표시되는 테이블의 UUID 형식의 리터럴입니다.

사용 권한

UNDROP TABLE 에는 다음 기본 권한 중 하나가 필요합니다.

  • 사용자는 테이블의 소유자이며 스키 CREATE TABLEUSE SCHEMAUSE CATALOG 카탈로그에 있습니다.
  • 사용자는 스키마의 소유자이며 USE CATALOG 카탈로그에 있습니다.
  • 사용자는 카탈로그의 소유자입니다.
  • 사용자는 메타스토어의 소유자입니다.
  • 사용자는 테이블에 MANAGE를, 스키마에 CREATE TABLEUSE 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