DROP EXTERNAL TABLE¶
현재/지정된 스키마에서 외부 테이블을 제거합니다. 이것은 메타데이터 전용 작업입니다. 외부 테이블이 참조하는 파일은 어떤 것도 삭제되지 않습니다.
구문¶
DROP EXTERNAL TABLE [ IF EXISTS ] <name> [ CASCADE | RESTRICT ]
매개 변수¶
name
삭제할 외부 테이블의 식별자를 지정합니다. 식별자에 공백, 특수 문자 또는 대/소문자가 혼합된 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다(예:
"My Object"
).외부 테이블 식별자가 (
db_name.schema_name.table_name
또는schema_name.table_name
형식으로) 정규화되지 않은 경우 이 명령은 세션의 현재 스키마에서 외부 테이블을 찾습니다.CASCADE | RESTRICT
테이블을 참조하는 외래 키가 있는 경우 외부 테이블을 삭제할 수 있는지 여부를 지정합니다.
CASCADE
는 다른 테이블의 외래 키가 참조하는 기본/고유 키가 있더라도 외부 테이블을 삭제합니다.RESTRICT
는 기존 외래 키 참조에 대한 경고를 반환하고 외부 테이블을 삭제하지 않습니다.
기본값:
CASCADE
사용법 노트¶
표준 테이블과 달리, 외부 테이블을 삭제하면 시스템에서 제거됩니다. 외부 테이블은 Time Travel을 사용하여 복구할 수 없습니다. 또한, UNDROP EXTERNAL TABLE 명령이 없습니다. 삭제된 외부 테이블은 다시 만들어야 합니다.
외부 테이블을 삭제한 후 이름이 같은 외부 테이블을 만들면 해당 테이블이 다시 생성됩니다. 외부 테이블의 이전 버전 기록은 보존되지 않습니다.
외부 테이블을 삭제하기 전에 테이블을 참조하는 뷰가 없음 을 확인하십시오. 뷰에서 참조하는 외부 테이블을 삭제하면 뷰가 무효화됩니다(즉, 뷰를 쿼리하면 “오브젝트가 없습니다” 오류가 반환됨).
예¶
외부 테이블 삭제하기:
SHOW EXTERNAL TABLES LIKE 't2%'; +-------------------------------+------------------+---------------+-------------+-----------------------+---------+-----------------------------------------+------------------+------------------+-------+-----------+----------------------+ | created_on | name | database_name | schema_name | owner | comment | location | file_format_name | file_format_type | cloud | region | notification_channel | |-------------------------------+------------------+---------------+-------------+-----------------------+---------+-----------------------------------------+------------------+------------------+-------+-----------+----------------------| | 2018-08-06 06:00:42.340 -0700 | T2 | MYDB | PUBLIC | MYROLE | | @MYDB.PUBLIC.MYSTAGE/ | | JSON | AWS | us-east-1 | NULL | +-------------------------------+------------------+---------------+-------------+-----------------------+---------+-----------------------------------------+------------------+------------------+-------+-----------+----------------------+ DROP EXTERNAL TABLE t2; +--------------------------+ | status | |--------------------------| | T2 successfully dropped. | +--------------------------+ SHOW EXTERNAL TABLES LIKE 't2%'; +------------+------+---------------+-------------+-------+---------+----------+------------------+------------------+-------+--------+----------------------+ | created_on | name | database_name | schema_name | owner | comment | location | file_format_name | file_format_type | cloud | region | notification_channel | |------------+------+---------------+-------------+-------+---------+----------+------------------+------------------+-------+--------+----------------------| +------------+------+---------------+-------------+-------+---------+----------+------------------+------------------+-------+--------+----------------------+
테이블을 다시 삭제하되, 테이블이 없을 경우 오류를 발생시키지 않기:
DROP EXTERNAL TABLE IF EXISTS t2; +------------------------------------------------------------+ | status | |------------------------------------------------------------| | Drop statement executed successfully (T2 already dropped). | +------------------------------------------------------------+