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). | +------------------------------------------------------------+