【发布时间】:2014-01-30 09:06:21
【问题描述】:
我使用 ActiveRecord 和 Ruby(没有 Rails)来连接 SQLite3 数据库。我从 Web API 获取一些数据并使用 find_or_create_by(some_hash) 将其存储在数据库中。只要some_hash 数据是唯一的,它就可以正常工作。如果some_hash已经存在于数据库中,则find_or_create_by方法失败并给出以下sql错误:SQLite3::ConstraintException: PRIMARY KEY must be unique。
我希望find_or_create 方法首先检查我的数据库以查看数据是否已经存在,如果存在,那么它不会创建重复条目。但是,如果它没有找到数据,那么只有这样它才会创建一个新条目。那么,当some_hash 已经存在于数据库中时,为什么我会收到该错误,就像它试图保存重复条目一样?
我该如何解决这个问题?
【问题讨论】:
标签: ruby activerecord sqlite