카테고리:

테이블, 뷰 및 시퀀스 DDL

DROP EXTERNAL TABLE

현재/지정된 스키마에서 외부 테이블을 제거합니다. 이것은 메타데이터 전용 작업입니다. 외부 테이블이 참조하는 파일은 어떤 것도 삭제되지 않습니다.

참고 항목:

CREATE EXTERNAL TABLE , ALTER EXTERNAL TABLE , SHOW EXTERNAL TABLES , DESCRIBE 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). |
+------------------------------------------------------------+
맨 위로 이동