4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

"duplicate key value violates unique constraint"の対応方法

Posted at

経緯

別環境のDBのデータをCSVでエクスポート。
ローカルのDBにCSVインポート。

その後、データ更新などの処理を行うと、
"duplicate key value violates unique constraint"
が発生してしまった。

解決方法

SQLで直接以下コマンドを叩く

select setval('テーブル名_重複してるカラム_seq',(select max(id) from テーブル名));

hogeテーブルのidでエラーが発生している場合であれば、

select setval('hoge_id_seq',(select max(id) from hoge));

原因

エラー内容から分かる通り、一意制約しているカラムの値が重複しているのが原因でした。

例えば、IDなどの自動更新の値。

MySqlなどであればカラムの最大値を取っていい具合にできるのですが、
postgresSQLの場合だと、別で最大値を保存しているそうです。

このコマンドを叩くことで、自動更新の最大値を無理やり合わせることができます。

参考URL

4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?