2013-04-06 68 views
-2

上午使用sqlite3數據庫。我在一個名爲device的表中插入了一組device_id(唯一的),這是在表爲空時完成的。但是,當我嘗試再次插入包含一些新ID的ID時,由於唯一性而拋出錯誤。僅在記錄不存在的情況下插入值

device_all_id.each do |device_id| 

    insert into device (Device_id) values ('#{device_id.first}') where where Device_id <> '#{device_id.first}' 

end 

所以我想檢查記錄是否已經存在插入device_ids之前,所以我嘗試「IF EXISTS」查詢,但同樣作爲扔語法錯誤。

任何人都可以請幫我出這個..

+0

請不要使用與您的問題無關的標籤 – 2013-04-06 16:59:05

+0

好的我不會..謝謝您的信息 – Abhiram 2013-04-06 18:57:45

回答

1

將需要數據庫回答兩個疑問前的檢查,並不會真正減少你的錯誤處理。 (您來捕獲錯誤。有很多方法的更新可能會出錯。)你幾乎總是最好只

  • 執行INSERT語句,
  • 俘獲錯誤,並
  • 採取適當的措施來解決錯誤。

從您的問題中不清楚UPSERT是否可能適合您。請參閱this SO answer

相關問題