Android-SQLite:如何处理独特的价值观?

时间:2015-03-22 04:37:22

标签: android database sqlite unique

我正在尝试写入数据库,在我的规范中,我必须确保特定字段没有重复项。大!我可以让这个专栏独一无二。

但我不知道如何处理之后。如果我使用该应用程序并意外插入一个恰好已存在的新值,该应用程序将崩溃。在尝试更新数据库之前,如何检查该值是否已存在?

我觉得if命令会起作用,Buuuuut,你如何在android上扫描该列的每个值呢?

1 个答案:

答案 0 :(得分:1)

我假设您建议我们可以读取表中的所有行,并且对于每一行,检查该值是否已存在。如果不存在,则插入,否则,处理冲突。

另一种方法是使用insertWithOnConflict()方法。您可以设置各种冲突解决策略,例如:

  • CONFLICT_ABORT
  • CONFLICT_FAIL
  • CONFLICT_IGNORE
  • CONFLICT_NONE
  • CONFLICT_REPLACE
  • CONFLICT_ROLLBACK

我对这种方法的复杂性一无所知,但可能比手动读取所有行并手动检查要好得多。

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#insertWithOnConflict(java.lang.String,%20java.lang.String,%20android.content.ContentValues,%20int)