我正在使用sqlite3数据库。我在一个名为device的表中插入了一组device_ids(唯一的),这是在表为空时完成的。但是当我尝试再次插入包含一些新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 :(得分:1)
插入前检查将要求数据库回答两个查询,并且它不会真正减少您的错误处理。 (你有来捕获错误。更新可能会有很多方法出错。)你几乎总是更好
从您的问题中不清楚UPSERT是否适合您。请参阅this SO answer。