sql >> Database >  >> RDS >> PostgreSQL

waarom PG::UniqueViolation:FOUT:dubbele sleutelwaarde schendt unieke beperking?

Om het probleem op te lossen, moeten we ActiveRecord vertellen om naar de volgorde van de tabel te kijken:

ActiveRecord::Base.connection.reset_pk_sequence!('table_name')

Nu zou ActiveRecord de juiste sequentiewaarde moeten hebben en nieuwe id's correct moeten kunnen toewijzen.

Om fout op te lossen

PG::UniqueViolation:FOUT:dubbele sleutelwaarde schendt unieke beperking "moderations_reportable" DETAIL:Sleutel (reportable_type, reportable_id)=(Post, 25) bestaat al. :INSERT INTO "moderations" ("blog_id", "reportable_type", "reportable_id", "created_at", "updated_at", "blog_type") WAARDEN ($1, $2, $3, $4, $5, $6) RETOURNEREN "id"

Omdat er een fout is opgetreden in de tabel 'moderaties'.

Voer het volgende uit vanaf rails console repareren

ActiveRecord::Base.connection.reset_pk_sequence!('moderations')

Dank je



  1. Kan geen verbinding maken met postgres vanaf een externe host

  2. mysql_fetch_assoc():opgegeven argument is geen geldige MySQL-resultaatbron in php

  3. Java:Blob lezen vanuit Oracle

  4. Een uitzondering krijgen ORA-00942:tabel of weergave bestaat niet - bij invoegen in een bestaande tabel