it-swarm.com.de

PostgreSQL - Schneiden Sie eine Tabelle in der Kaskade ab und setzen Sie alle hierarchischen Sequenzen mit 1 zurück

Gibt es eine Möglichkeit, alle Sequenzen von Tabellen zurückzusetzen, wenn eine Tabelle in der Kaskade abgeschnitten wird?.

Ich habe diesen Beitrag bereits gelesen Wie setze ich die Sequenz in postgres zurück und fülle die ID-Spalte mit neuen Daten?

ALTER SEQUENCE seq RESTART WITH 1;
UPDATE t SET idcolumn=nextval('seq');

Es funktioniert nur für eine Sequenz, aber mein Problem besteht darin, die gesamte Sequenz der abgeschnittenen Tabellen neu zu starten.

Überlegen Sie, wann ich TRUNCATE sch.mytable CASCADE; Verwende. Es betrifft 3 verwandte Tabellen, was drei Sequenzen bedeutet. Gibt es eine Lösung, um diese Sequenz auf einmal neu zu starten?.

10
YCF_L

Die Anweisung TRUNCATE verfügt über eine zusätzliche Option RESTART IDENTITY, wodurch die den Tabellenspalten zugeordneten Sequenzen zurückgesetzt werden.

TRUNCATE sch.mytable RESTART IDENTITY CASCADE;

Wenn CASCADE definiert ist, werden die Sequenzen aller betroffenen Tabellen zurückgesetzt.

21