PG::UniqueViolation: ERROR: duplicate key value violates unique constraintエラーの解決

PostgreSQL Ruby on Rails

Posted by Yuto Yasunaga at 2020-08-24 12:15:24 +0900

PGデータベースにデータをインポートの後など、このエラーが発生する場合があります。

PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "<sample_tables>_pkey"

原因

データインポートなどの場合、PostgreSQLが指定したカラムの最大値を取ってくれず、別に保存してある最大値になってしまいます。

解決

Railsコンソールで以下のコードを実行すれば治ります。

ActiveRecord::Base.connection.tables.each do |t|
  ActiveRecord::Base.connection.reset_pk_sequence!(t)
end

Back