仅在记录不存在的情况下插入值
问题描述:
上午使用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”查询,但同样作为扔语法错误。
任何人都可以请帮我出这个..
答
将需要数据库回答两个疑问前的检查,并不会真正减少你的错误处理。 (您有来捕获错误。有很多方法的更新可能会出错。)你几乎总是最好只
- 执行INSERT语句,
- 俘获错误,并
- 采取适当的措施来解决错误。
从您的问题中不清楚UPSERT是否可能适合您。请参阅this SO answer。
请不要使用与您的问题无关的标签 – 2013-04-06 16:59:05
好的我不会..谢谢您的信息 – Abhiram 2013-04-06 18:57:45