2013-04-06 78 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

相关问题