カテゴリ:

テーブル、ビュー、シーケンス DDL

DROP EXTERNAL TABLE

現在の/指定されたスキーマから外部テーブルを削除します。これはメタデータのみの操作であることに注意してください。外部テーブルが参照するファイルはいずれもドロップされません。

こちらもご参照ください:

CREATE EXTERNAL TABLE , SHOW EXTERNAL TABLES

構文

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

パラメーター

名前

ドロップする外部テーブルの識別子を指定します。識別子にスペース、特殊文字、または大文字と小文字が混在する場合、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます(例: "My Object")。

外部テーブル識別子が完全修飾されていない場合( データベース名.スキーマ名.テーブル名 または スキーマ名.テーブル名 の形式)、コマンドはセッションの現在のスキーマの外部テーブルを探します。

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