确保我没有将信息插入已经存在的sqlite数据库的最佳方法?

时间:2011-05-05 00:46:32

标签: android sqlite

我正在制作一个程序,允许您从应用程序执行搜索。然后,应用程序将下载搜索结果并将其存储在数据库中。我使用url作为主键,这样我就可以确保我没有输入两次相同的数据(因为URL肯定是唯一的标识符),但是这会引起一些问题。尝试使用相同的URL保存行时,数据库会出错并崩溃。我想这很好,因为我可以将我的insert语句放在try / catch块中。我有一些问题:

  1. 我应该捕捉什么(尝试捕获阻止)以检测何时发生这样的错误,其中它正在尝试插入数据库的项目已经存储?

  2. 这是一个简单的“一次将每个搜索结果添加到DB 1”的方法。如果我想进行数据库事务并一次添加〜25,该怎么办?我怎么知道哪一个是错误的,最好的方法是什么?有没有办法让它继续添加没有问题的其余部分?

  3. 如果我不想使用网址作为主键,我该怎么做呢?

3 个答案:

答案 0 :(得分:0)

好吧,您可以在桌面上运行select,以便在尝试插入之前查看该网址是否已存在。

但是你应该尝试更优雅地处理插入错误。

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以尝试使用INSERT OR REPLACE http://www.sqlite.org/lang_insert.html