Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting
TRUNCATE
Löscht alle Zeilen aus einer Tabelle, ohne die Tabelle zu scannen: Dieser Vorgang stellt eine schnellere Alternative zu einer nicht qualifizierten DELETE-Operation dar. Um einen TRUNCATE-Befehl auszuführen, muss Ihnen die Berechtigung TRUNCATE für die Tabelle erteilt worden sein, Sie müssen der Besitzer der Tabelle sein oder Sie müssen ein Superuser sein. Mit dem GRANT-Befehl können Sie Berechtigungen zum Kürzen einer Tabelle erteilen.
TRUNCATE ist sehr viel effizienter als DELETE und erfordert weder VACUUM noch ANALYZE. Denken Sie jedoch daran, dass TRUNCATE ein Commit für die Transaktion ausführt, in der er ausgeführt 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 Befehl TRUNCATE führt ein Commit für die Transaktion aus, in der er ausgeführt wird. Daher können Sie für eine TRUNCATE-Operation kein Rollback ausführen. Ein TRUNCATE-Befehl kann ein Commit für andere Operationen ausführen, wenn er ein Commit für sich selbst ausführt.
-
TRUNCATE-Operationen enthalten exklusive Sperren, wenn sie in materialisierten Ansichten für das Streaming in Amazon Redshift ausgeführt werden, die mit einem der folgenden Streams verbunden sind:
Einem Amazon-Kinesis-Datenstrom
Einem Thema in Amazon Managed Streaming für Apache Kafka
Einem unterstützten externen Stream, z. B. einem Thema in Confluent Cloud Kafka
Weitere Informationen finden Sie unter Streaming-Aufnahme in eine materialisierte Ansicht.
Beispiele
Verwenden Sie den Befehl TRUNCATE, um alle Zeilen aus der Tabelle CATEGORY zu löschen:
truncate category;
Im folgenden Beispiel wird versucht, ein Rollback für eine TRUNCATE-Operation auszuführen:
begin; truncate date; rollback; select count(*) from date; count ------- 0 (1 row)
Die Tabelle DATE bleibt nach dem ROLLBACK-Befehl leer, da der TRUNCATE-Befehl automatisch ein Commit ausgeführt hat.
Im folgenden Beispiel wird der Befehl TRUNCATE verwendet, um alle Zeilen 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.