我有一个account_users表,该表具有account_id和user_id。所以我在数据库级别添加了一个索引来维护唯一记录
add_index :account_users, [:account_id, :user_id], unique: true
有时我会遇到这种情况,即使我确定我输入的是正确的帐户和用户组合,我的意思是不存在的记录
有时它神奇地起作用,有时我遇到以下错误
"ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint \"account_users_pkey\"\nDETAIL: Key (id)=(6) already exists.\n: INSERT INTO \"account_users\" (\"account_id\", \"user_id\", \"created_at\", \"updated_at\", \"common_role_id\", \"added_by_user_id\") VALUES ($1, $2, $3, $4, $5, $6) RETURNING \"id\"","duration":25.14,"view":0.0,"db":9.59}
我想知道unique: true
是否是罪魁祸首。
答案 0 :(得分:0)
唯一约束限制您在db表中添加任何重复的条目。因此,如果表中已经有任何重复的条目,则不会添加唯一约束。
您必须首先使其具有唯一性。