DROP EXTERNAL TABLE¶
Entfernt eine externe Tabelle aus dem aktuellen oder angegebenen Schema. Dies ist nur eine Metadatenoperation. Keine der Dateien, auf die die externe Tabelle verweist, wird gelöscht.
- Siehe auch:
CREATE EXTERNAL TABLE, ALTER EXTERNAL TABLE, SHOW EXTERNAL TABLES, DESCRIBE EXTERNAL TABLE
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ß-/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ß-/Kleinschreibung zu beachten (z. B.
"My Object"
).Wenn der Bezeichner der externen Tabelle nicht vollqualifiziert ist (in der Form
db_name.schema_name.table_name
oderschema_name.table_name
), 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- oder 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).
Wenn die IF EXISTS-Klausel angegeben ist und das Zielobjekt nicht vorhanden ist, wird der Befehl erfolgreich abgeschlossen, ohne dass ein Fehler zurückgegeben wird.
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 | |------------+------+---------------+-------------+-------+---------+----------+------------------+------------------+-------+--------+----------------------| +------------+------+---------------+-------------+-------+---------+----------+------------------+------------------+-------+--------+----------------------+
Erneutes Löschen der Tabelle, aber ohne einen Fehler auszulösen, wenn die Tabelle nicht vorhanden ist:
DROP EXTERNAL TABLE IF EXISTS t2; +------------------------------------------------------------+ | status | |------------------------------------------------------------| | Drop statement executed successfully (T2 already dropped). | +------------------------------------------------------------+