DROP ICEBERG TABLE

현재/지정된 스키마에서 Iceberg 테이블 을 제거하지만, UNDROP ICEBERG TABLE 을 사용하여 복구할 수 있도록 Iceberg 테이블 버전을 유지합니다. 자세한 내용은 이 항목에 있는 사용법 노트 를 참조하십시오.

이 항목에서는 Iceberg 테이블 이라고 명시하여 혼동을 피하는 경우를 제외하고는 Iceberg 테이블을 단순히 ‘테이블’로 지칭한다는 점에 유의하십시오.

참고 항목:

CREATE ICEBERG TABLE , SHOW ICEBERG TABLES , UNDROP ICEBERG TABLE

구문

DROP [ ICEBERG ] TABLE [ IF EXISTS ] <name> [ CASCADE | RESTRICT ]
Copy

매개 변수

name

삭제할 테이블의 식별자를 지정합니다. 식별자에 공백, 특수 문자 또는 대/소문자가 혼합된 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다(예: "My Object").

테이블 식별자가 (db_name.schema_name.table_name 또는 schema_name.table_name 형식으로) 정규화되지 않은 경우 이 명령은 세션의 현재 스키마에서 테이블을 찾습니다.

CASCADE | RESTRICT

테이블을 참조하는 외래 키가 있는 경우 테이블을 삭제할 수 있는지 여부를 지정합니다.

  • CASCADE 는 테이블에 다른 테이블의 외래 키가 참조하는 기본/고유 키가 있더라도 테이블을 삭제합니다.

  • RESTRICT 는 기존 외래 키 참조에 대한 경고를 반환하고 테이블을 삭제하지 않습니다.

기본값: CASCADE

액세스 제어 요구 사항

이 SQL 명령을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

OWNERSHIP

Iceberg 테이블

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

USAGE

외부 볼륨

USAGE

통합(카탈로그)

Iceberg 테이블이 카탈로그 통합을 사용하는 경우 필수입니다.

스키마의 모든 오브젝트에 대해 작업하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한도 필요합니다.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

사용법 노트

  • 테이블을 삭제해도 시스템에서 영구적으로 제거되지는 않습니다. Snowflake는 삭제된 테이블의 버전은 테이블에 대한 DATA_RETENTION_TIME_IN_DAYS 매개 변수로 지정된 일수 동안 Time Travel 에 보존합니다. 자세한 내용은 Iceberg 테이블의 메타데이터 및 스냅샷 을 참조하십시오.

  • Time Travel 보존 기간 내에 UNDROP ICEBERG TABLE 명령을 사용하여 삭제된 테이블을 복원할 수 있습니다.

  • 삭제된 테이블은 제거된 후에는 복구할 수 없으며, 다시 만들어야 합니다.

  • 테이블을 삭제한 후, 같은 이름의 테이블을 만들면 새 버전의 테이블이 생성됩니다. 다음 단계에 따라 이전 테이블의 삭제된 버전을 복원할 수 있습니다.

    1. 현재 버전의 테이블 이름을 다른 이름으로 바꿉니다.

    2. UNDROP ICEBERG TABLE 명령을 사용하여 이전 버전을 복원합니다.

  • 테이블을 삭제하기 전에 테이블을 참조하는 뷰가 없음 을 확인하십시오. 뷰에서 참조하는 테이블을 삭제하면 뷰가 무효화됩니다(뷰를 쿼리하면 “오브젝트가 없습니다” 오류가 반환됨).

테이블 삭제하기:

DROP ICEBERG TABLE t2;

+--------------------------+
| status                   |
|--------------------------|
| T2 successfully dropped. |
+--------------------------+
Copy

테이블을 다시 삭제하되, 테이블이 없을 경우 오류를 발생시키지 않기:

DROP ICEBERG TABLE IF EXISTS t2;

+------------------------------------------------------------+
| status                                                     |
|------------------------------------------------------------|
| Drop statement executed successfully (T2 already dropped). |
+------------------------------------------------------------+
Copy