web-dev-qa-db-fra.com

PostgreSQL - Tronquez une table en cascade et réinitialisez toutes les séquences hiérarchiques avec 1

Existe-t-il un moyen de réinitialiser toutes les séquences de tables, lorsque tronquer une table en cascade.

J'ai déjà lu ce post Comment réinitialiser la séquence dans postgres et remplir la colonne id avec de nouvelles données?

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

Cela ne fonctionne que pour une séquence, mais mon problème est de redémarrer toute la séquence des tables tronquées.

Considérez quand j'utilise TRUNCATE sch.mytable CASCADE; Cela affecte 3 tables liées, ce qui signifie trois séquences. Y a-t-il une solution pour redémarrer cette séquence en une seule fois.

10
YCF_L

L'instruction TRUNCATE possède une option supplémentaire RESTART IDENTITY qui réinitialise les séquences associées aux colonnes du tableau.

TRUNCATE sch.mytable RESTART IDENTITY CASCADE;

Si CASCADE est défini, les séquences de toutes les tables affectées sont réinitialisées.

21