Es ist eine Weile her, seit diese Frage gestellt wurde, Hoffnung kann helfen. Da Sie die Datenbankstruktur nicht ändern können, können Sie dies tun. gemäß den postgresql docs .
TRUNCATE - Leert eine Tabelle oder einen Satz von Tabellen.
TRUNCATE [ TABLE ] [ ONLY ] name [ * ] [, ... ]
[ RESTART IDENTITY | CONTINUE IDENTITY ] [ CASCADE | RESTRICT ]
Beschreibung
TRUNCATE entfernt schnell alle Zeilen aus einer Reihe von Tabellen. Es hat den gleichen Effekt wie ein nicht qualifiziertes LÖSCHEN für jede Tabelle, aber da es die Tabellen nicht tatsächlich scannt, ist es schneller. Darüber hinaus wird sofort Speicherplatz zurückgewonnen, anstatt eine nachfolgende VACUUM-Operation zu erfordern. Dies ist am nützlichsten bei großen Tabellen.
Schneiden Sie die Tabelle othertable ab und kaskadieren Sie über Fremdschlüsseleinschränkungen zu allen Tabellen, die auf othertable verweisen:
TRUNCATE othertable CASCADE;
Das gleiche und auch alle zugehörigen Sequenzgeneratoren zurücksetzen:
TRUNCATE bigtable, fattable RESTART IDENTITY;
Schneiden Sie alle zugehörigen Sequenzgeneratoren ab und setzen Sie sie zurück:
TRUNCATE revinfo RESTART IDENTITY CASCADE ;
creating foreign keys
wiradd parent then child
. Also beim Löschen wirdelete child and then parent
;)