TRUNCATE

test=# \h TRUNCATE
Command:     TRUNCATE
Description: empty a table or set of tables
Syntax:
TRUNCATE [ TABLE ] [ ONLY ] name [, ... ]
    [ RESTART IDENTITY | CONTINUE IDENTITY ] [ CASCADE | RESTRICT ]

Wollen Sie den Inhalt einer Tabelle komplett löschen, können Sie TRUNCATE verwenden.

test=# TRUNCATE t_person;
TRUNCATE TABLE

Zusätzlich zum Tabellennamen können wir optional noch RESTART IDENTITY oder CONTINUE IDENTITY angeben. CONTINUE IDENTITY ist der Default-Wert und sorgt dafür, dass eventuell vorhandene Sequenzen, die Auto-Increment Werte vergeben, nicht auf den Startwert zurück gesetzt werden. RESTART IDENTITY sorgt dafür, dass die entsprechenden Sequenzen entsprechend zurück gesetzt werden. Diese Funktionalität gibt es seit PostgreSQL 8.4 und ist in älteren Versionen von PostgreSQL nicht vorhanden.

TRUNCATE ist wesentlich schneller als DELETE, da PostgreSQL die Daten nicht auf Datensatzebene löscht sondern direkt die entsprechenden Dateien auf der Platte entfernt.




Cybertec Schönig & Schönig GmbH
PostgreSQL support, training, consulting
www.postgresql-support.de