【发布时间】:2016-05-10 03:32:55
【问题描述】:
我正在使用带有游标和内容值的 Android / Java 和 SQLite3 / SQLiteOpenHelper。
我的表中有一个时间戳字段。我想确保如果有人添加新行,如果时间戳已被占用,则不会添加该行(所以我不希望每个时间戳有多个值)。
这可以有效地执行吗?还是每次执行插入时都必须执行一个 select 语句才能先检查?
【问题讨论】:
标签: java android sqlite sqliteopenhelper
我正在使用带有游标和内容值的 Android / Java 和 SQLite3 / SQLiteOpenHelper。
我的表中有一个时间戳字段。我想确保如果有人添加新行,如果时间戳已被占用,则不会添加该行(所以我不希望每个时间戳有多个值)。
这可以有效地执行吗?还是每次执行插入时都必须执行一个 select 语句才能先检查?
【问题讨论】:
标签: java android sqlite sqliteopenhelper
在时间戳字段上添加UNIQUE 限定符。然后,您可以通过调用inserWithOnConflict() 并将CONFLICT_FAIL 作为冲突算法参数传递来选择您想要的行为。
【讨论】:
CONFLICT_FAIL 会导致抛出异常,