LoginSignup
36
28

More than 5 years have passed since last update.

postgres で INSERT時に 「id(主キー) がユニークじゃないよ」と怒られる。

Posted at

エラーとしては以下のようなもの。

'duplicate key value violates unique constraint "*******" ' 

IDの自動採番が、なぜかズレてしまっているため今回の事態になった。

まず、現在の主キーの最大値を確認。

SELECT MAX(id) FROM table;

続いて、自動採番をしている nextval関数 での値を確認。

SELECT nextval('table_id_seq');

この値が主キーの最大値より小さいと、ズレていることになる。

続いてズレの修正。
以下のように setval関数 で修正できる。

SELECT setval('table_id_seq', (SELECT MAX(id) FROM table));

以上。

下記のサイトを参考(というかそのまま)にさせてもらいました。
大変助かりました。
https://www.xmisao.com/2014/06/07/duplicate-key-value-violates-unique-constant-primary-key-on-postgresql.html

36
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
28