将PostgreSQL主键重置为1

有没有办法重新设置PostgreSQL表的主键从1开始在填充表上重新开始?

现在它正在产生1000000以上的数字。 我想这一切都重置,并开始1,保持所有我现有的数据完好无损。

自动增量的主键(即,具有数据typesserial primary key列)与序列相关联。 您可以使用setval(<seqname>,<next_value>)为任何序列设置下一个值。

使用序列时自动创build序列的名称是<table>_<column>_seq

重置序列以从数字1开始的最好方法是执行以下操作:

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

所以,例如对于users表,它将是:

 ALTER SEQUENCE users_id_seq RESTART WITH 1