経緯
別環境の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