DROP ICEBERG TABLE¶
현재/지정된 스키마에서 Iceberg 테이블 을 제거하지만, UNDROP ICEBERG TABLE 을 사용하여 복구할 수 있도록 Iceberg 테이블 버전을 유지합니다. 자세한 내용은 이 항목에 있는 사용법 노트 를 참조하십시오.
이 항목에서는 Iceberg 테이블 이라고 명시하여 혼동을 피하는 경우를 제외하고는 Iceberg 테이블을 단순히 ‘테이블’로 지칭한다는 점에 유의하십시오.
구문¶
DROP [ ICEBERG ] TABLE [ IF EXISTS ] <name> [ CASCADE | RESTRICT ]
매개 변수¶
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 명령을 사용하여 삭제된 테이블을 복원할 수 있습니다.
삭제된 테이블은 제거된 후에는 복구할 수 없으며, 다시 만들어야 합니다.
테이블을 삭제한 후, 같은 이름의 테이블을 만들면 새 버전의 테이블이 생성됩니다. 다음 단계에 따라 이전 테이블의 삭제된 버전을 복원할 수 있습니다.
현재 버전의 테이블 이름을 다른 이름으로 바꿉니다.
UNDROP ICEBERG TABLE 명령을 사용하여 이전 버전을 복원합니다.
테이블을 삭제하기 전에 테이블을 참조하는 뷰가 없음 을 확인하십시오. 뷰에서 참조하는 테이블을 삭제하면 뷰가 무효화됩니다(뷰를 쿼리하면 “오브젝트가 없습니다” 오류가 반환됨).
예¶
테이블 삭제하기:
DROP ICEBERG TABLE t2; +--------------------------+ | status | |--------------------------| | T2 successfully dropped. | +--------------------------+
테이블을 다시 삭제하되, 테이블이 없을 경우 오류를 발생시키지 않기:
DROP ICEBERG TABLE IF EXISTS t2; +------------------------------------------------------------+ | status | |------------------------------------------------------------| | Drop statement executed successfully (T2 already dropped). | +------------------------------------------------------------+