PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

pourquoi PG::UniqueViolation :ERREUR :la valeur de clé en double viole la contrainte unique ?

Pour résoudre le problème, nous devons indiquer à ActiveRecord de regarder la séquence du tableau :

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

Maintenant, ActiveRecord devrait avoir la valeur de séquence correcte et devrait pouvoir attribuer correctement de nouveaux identifiants.

Pour résoudre l'erreur

PG::UniqueViolation :ERREUR :la valeur de clé en double viole la contrainte unique "moderations_reportable" DÉTAIL :la clé (reportable_type, reportable_id)=(Post, 25) existe déjà. :INSERT INTO "modérations" ("blog_id", "reportable_type", "reportable_id", "created_at", "updated_at", "blog_type") VALEURS ($1, $2, $3, $4, $5, $6) RETURNING "id"

Comme une erreur s'est produite sur la table 'modérations'.

Exécutez ce qui suit à partir de la console rails réparer

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

Merci