TRUNCATE TABLE¶
Entfernt alle Zeilen aus einer Tabelle, lässt die Tabelle jedoch unverändert (einschließlich aller Berechtigungen und Einschränkungen für die Tabelle). Löscht außerdem den Lademetadaten für die Tabelle, sodass nach Abschluss des Befehls dieselben Dateien erneut in die Tabelle geladen werden können.
Beachten Sie, dass dies anders als bei DROP TABLE ist, wodurch die Tabelle aus dem System entfernt wird, aber eine Version der Tabelle (zusammen mit dem Ladeverlauf) beibehalten wird, damit sie wiederhergestellt werden kann.
- Siehe auch:
Syntax¶
TRUNCATE [ TABLE ] [ IF EXISTS ] <name>
Parameter¶
name
Gibt den Bezeichner für die zu kürzende Tabelle an. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten (z. B.
"My Object"
).Wenn der Tabellenbezeichner nicht vollqualifiziert ist (in der Form
db_name.schema_name.table_name
oderschema_name.table_name
), sucht der Befehl die Tabelle im aktuellen Schema der Sitzung.
Nutzungshinweise¶
Sowohl DELETE als auch TRUNCATE TABLE verwalten gelöschte Daten zu Wiederherstellungszwecken (d. h. mit Time Travel) für die Datenaufbewahrungsfrist. Wenn eine Tabelle jedoch gekürzt wird, können die Lademetadaten nicht wiederhergestellt werden.
Das Schlüsselwort
TABLE
ist optional, wenn der Tabellenname vollständig qualifiziert ist oder von der Sitzung aktuell eine Datenbank und ein Schema verwendet wird.
Beispiele¶
-- create a basic table CREATE OR REPLACE TABLE temp (i number); -- populate it with some rows INSERT INTO temp SELECT seq8() FROM table(generator(rowcount=>20)) v; -- verify that the rows exist SELECT COUNT (*) FROM temp; ----------+ count(*) | ----------+ 20 | ----------+ -- truncate the table TRUNCATE TABLE IF EXISTS temp; -- verify that the table is now empty SELECT COUNT (*) FROM temp; ----------+ count(*) | ----------+ 0 | ----------+