【问题标题】:Android-SQLite: How to deal with unique values?Android-SQLite:如何处理唯一值?
【发布时间】:2015-03-22 04:37:22
【问题描述】:

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

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

我觉得 if 命令可以工作,Buuuuut,无论如何,你如何扫描 android 上该列的每个值?

【问题讨论】:

  • If I use the application and accidentally insert a new value which happens to already exist, the app will just crash. 问:您如何处理错误? 答: 使用try ... catch [... finally]

标签: android database sqlite unique


【解决方案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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    相关资源
    最近更新 更多