21

Is there any way to reset all the sequences of tables, when truncate a table on cascade.

I already read this post How to reset sequence in postgres and fill id column with new data?

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

It work only for one sequence, but my problem is to restart all the sequence of the truncated tables.

Consider when I use TRUNCATE sch.mytable CASCADE; It affect 3 related tables, which mean three sequences, Is there any solution to restart this sequence in one shot.

YCF_L
  • 313
  • 1
  • 2
  • 8

1 Answers1

44

The TRUNCATE statement has an additional option RESTART IDENTITY which resets the sequences associated with the table columns.

TRUNCATE sch.mytable RESTART IDENTITY CASCADE;

If CASCADE is defined, then the sequences of all affected tables are reset.

a_horse_with_no_name
  • 69,148
  • 13
  • 135
  • 173