다음을 통해 공유


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_name

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

  • table_id

    SHOW TABLES DROPPED에 의해 표시된 table의 UUID 형식으로 된 STRING 리터럴입니다.

사용 권한

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

  • 사용자는 table의 소유자이며, schema에 CREATE TABLEUSE SCHEMA가 있고, catalog에 USE CATALOG가 있습니다.
  • 사용자는 schema의 소유자이며 catalog에 USE CATALOG을 가지고 있습니다.
  • catalog의 소유자는 사용자입니다.
  • 사용자는 메타스토어의 소유자입니다.
  • 사용자는 table에 MANAGE가 있고, schema에 CREATE TABLEUSE 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