다음을 통해 공유


UNDROP TABLE

적용 대상: 예로 표시된 확인 Databricks SQL 예로 표시된 확인 Databricks Runtime 12.2 LTS 이상

UNDROP 명령은 Unity 카탈로그에 있는 관리 테이블 또는 외부 테이블이 실수로 삭제되는 문제를 해결합니다. 기본적으로 이 명령은 지정된 테이블 이름의 사용자가 소유한 가장 최근에 삭제된 테이블을 삭제 취소(복구)합니다. 부모 스키마 및 카탈로그가 있어야 합니다. 이 기능은 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 }

매개 변수

  • table_name

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

  • table_id

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

사용 권한

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

  • 사용자는 테이블의 소유자이며 스키 CREATE TABLEUSE CATALOGUSE 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