1

我在两个模型之间有相当多的多对多关系:用户和兴趣。

当我迁移我的数据库时,会创建一个interest_users 表,其中包含两列:user_id 和interest_id。

创建用户记录很好,链接表中的行也很好创建。但是,当我去更新记录时,我得到以下信息:

ERROR:  duplicate key value violates unique constraint "interest_users_pkey"
DETAIL:  Key (user_id, interest_id)=(1, 2) already exists.

这意味着不会创建新的用户兴趣链接。更重要的是,我似乎也无法删除链接。

我在带有 postgresql 数据库的 Rails 3 上使用 datamapper。有没有其他人有同样的问题?

4

1 回答 1

1

您应该确定它是否是 UPDATE 以及它是否正在尝试更改(设置)字段 user_id、interest_id。很多时候这是因为 WHERE 子句没有考虑主键字段。另一种可能性是已经存在的键 (user_id, interest_id)=(1, 2) 是孤立数据,如果是这样,您应该确保:constraint => :destroy在关系中启用了一些。

于 2012-05-08T16:49:48.480 回答