Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
TRUNCATE
Löscht alle Zeilen aus einer Tabelle, ohne einen Tabellenscan durchzuführen: Dieser Vorgang ist eine schnellere Alternative zu einer DELETE unqualifizierten Operation. Um einen TRUNCATE Befehl ausführen zu können, müssen Sie über die TRUNCATE TABLE entsprechende Berechtigung verfügen, Eigentümer der Tabelle oder Superuser sein. Mit dem GRANT-Befehl können Sie Berechtigungen zum Kürzen einer Tabelle erteilen.
TRUNCATEist viel effizienter als DELETE und benötigt keine HandVACUUM. ANALYZE Beachten Sie jedoch, dass die TransaktionTRUNCATE, in der sie ausgeführt wird, festgeschrieben wird.
Syntax
TRUNCATE [ TABLE ] table_name
Der Befehl funktioniert auch in einer materialisierten Ansicht.
TRUNCATE materialized_view_name
Parameter
- TABLE
-
Optionales Schlüsselwort.
- table_name
-
Eine temporäre oder persistente Tabelle. Nur der Besitzer der Tabelle oder ein Superuser können sie verkürzen.
Sie können jede Tabelle abschneiden, auch Tabellen, die in Fremdschlüsseleinschränkungen referenziert werden.
Sie müssen eine Tabelle nicht bereinigen, nachdem Sie sie abgeschnitten haben.
- materialized_view_name
-
Eine materialisierte Ansicht.
Sie können eine materialisierte Ansicht, die für Streaming-Aufnahme in eine materialisierte Ansicht verwendet wird, kürzen.
Nutzungshinweise
Der TRUNCATE Befehl schreibt die Transaktion fest, in der er ausgeführt wird. Daher können Sie einen TRUNCATE Vorgang nicht rückgängig machen, und ein TRUNCATE Befehl kann andere Operationen festschreiben, wenn er sich selbst festschreibt.
Beispiele
Verwenden Sie den TRUNCATE Befehl, um alle Zeilen aus der CATEGORY Tabelle zu löschen:
truncate category;
Versuch, einen TRUNCATE Vorgang rückgängig zu machen:
begin; truncate date; rollback; select count(*) from date; count ------- 0 (1 row)
Die DATE Tabelle bleibt nach dem ROLLBACK Befehl leer, da der TRUNCATE Befehl automatisch übernommen wurde.
Im folgenden Beispiel wird der TRUNCATE Befehl verwendet, um alle Zeilen aus einer materialisierten Ansicht zu löschen.
truncate my_materialized_view;
Er löscht alle Datensätze in der materialisierten Ansicht und lässt die materialisierte Ansicht und ihr Schema unverändert. In der Abfrage ist der Name der materialisierten Ansicht ein Beispiel.