Reset PostgreSQL primary key to 1

David picture David · Sep 29, 2010 · Viewed 69.5k times · Source

Is there a way to reset the primary key of a PostgreSQL table to start at 1 again on a populated table?

Right now it's generating numbers from 1000000 and up. I want it all to reset and start to 1, keeping all my existing data intact.

Answer

Paweł Gościcki picture Paweł Gościcki · Mar 11, 2011

The best way to reset a sequence to start back with number 1 is to execute the following:

ALTER SEQUENCE <tablename>_<id>_seq RESTART WITH 1

So, for example for the users table it would be:

ALTER SEQUENCE users_id_seq RESTART WITH 1