idフィールドをauto_incrementにしている場合、 truncateでテーブルを空にしても、id値が元に戻りません。 例えばusersというテーブルをtruncateした場合、 以下sqlを発行してください。 select * from users_id_seq; そうするとlast_valueという値があると思いますが、 こちらを初期化してあげないと、truncateする前の値から 増えていってしまいます。 で、こちらの初期化方法は以下になります。 select setval ('users_id_seq', 1, false); ちなみに以下のように番号をいじる事も可能です。 select setval ('users_id_seq', 10); この場合は、次のid値は11から始まる事になります。
![Postgresにてシーケンスをリセットする方法 | 東京うぇ部](https://cdn-ak-scissors.b.st-hatena.com/image/square/17a5e16c9f8513fd67df76589f8eb9870fceae4e/height=288;version=1;width=512/https%3A%2F%2Fwww.t-webu.net%2Fwp-content%2Fuploads%2F2014%2F09%2Fpostgres.png)