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

PostgreSQL Ruby on Rails

Updated by Yuto Yasunaga at 2020/08/24 03:15

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