我使用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必須是唯一的。find_or_create_by導致SQLite3 PRIMARY KEY必須是唯一的錯誤
我預計find_or_create
方法首先檢查我的數據庫,看看數據是否已經存在,如果有,那麼它不會創建一個重複的條目。但是,如果它沒有找到數據,那麼只有它會創建一個新條目。那麼,爲什麼當some_hash
已經存在於數據庫中時就會出現這樣的錯誤,就像它試圖保存重複條目一樣?
我該如何解決這個問題?
試過了但它給出了同樣的錯誤 – HM1