Kategorien:

DDL für Tabellen, Ansichten und Sequenzen

DROP EXTERNAL TABLE

Entfernt eine externe Tabelle aus dem aktuellen/angegebenen Schema. Beachten Sie, dass dies nur eine Metadatenoperation ist. Keine der Dateien, auf die die externe Tabelle verweist, wird gelöscht.

Siehe auch:

CREATE EXTERNAL TABLE TYPE = CSV | JSON | AVRO | ORC | PARQUET [ ... ] , SHOW EXTERNAL TABLES

Syntax

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

Parameter

Name

Gibt den Bezeichner für die zu löschende externe Tabelle an. Wenn der Bezeichner Leerzeichen, Sonderzeichen oder Zeichen in Groß- und Kleinschreibung enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen eingeschlossen werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten (z. B. "My Object").

Wenn der Bezeichner der externen Tabelle nicht vollqualifiziert ist (in Form von Datenbankname.Schemaname.Tabellenname oder Schemaname.Tabellenname), sucht der Befehl die externe Tabelle im aktuellen Schema der Sitzung.

CASCADE | RESTRICT

Gibt an, ob die externe Tabelle gelöscht werden kann, wenn Fremdschlüssel existieren, die auf die Tabelle verweisen:

  • CASCADE entfernt die externe Tabelle, auch wenn sie Unique-/Primärschlüssel hat, die von Fremdschlüsseln in anderen Tabellen referenziert werden.

  • RESTRICT gibt eine Warnung über bestehende Fremdschlüsselreferenzen zurück und entfernt die externe Tabelle nicht.

Standard: CASCADE

Nutzungshinweise

  • Im Gegensatz zu einer Standardtabelle wird eine externe Tabelle beim Löschen aus dem System entfernt. Eine externe Tabelle kann mit Time Travel nicht wiederhergestellt werden. Es gibt auch keinen UNDROP EXTERNAL TABLE-Befehl. Eine gelöschte externe Tabelle muss neu erstellt werden.

  • Wenn Sie nach dem Löschen einer externen Tabelle eine externe Tabelle mit demselben Namen erstellen, wird die Tabelle neu erstellt. Es wird kein Verlauf der alten Version der externen Tabelle beibehalten.

  • Bevor Sie eine externe Tabelle entfernen, vergewissern Sie sich, dass keine Ansichten auf die Tabelle verweisen. Durch das Löschen einer externen Tabelle, auf die eine Ansicht verweist, wird diese Ansicht ungültig (d. h. Abfragen für die Ansicht geben den Fehler „Objekt existiert nicht“ zurück).

Beispiele

Löschen Sie eine externe Tabelle:

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

Löschen Sie die Tabelle wieder, aber ohne Fehlermeldung, wenn die Tabelle nicht existiert:

DROP EXTERNAL TABLE IF EXISTS t2;

+------------------------------------------------------------+
| status                                                     |
|------------------------------------------------------------|
| Drop statement executed successfully (T2 already dropped). |
+------------------------------------------------------------+