【问题标题】:Insert only if timestamp is unoccupied仅在时间戳未被占用时插入
【发布时间】:2016-05-10 03:32:55
【问题描述】:

我正在使用带有游标和内容值的 Android / Java 和 SQLite3 / SQLiteOpenHelper。

我的表中有一个时间戳字段。我想确保如果有人添加新行,如果时间戳已被占用,则不会添加该行(所以我不希望每个时间戳有多个值)。

这可以有效地执行吗?还是每次执行插入时都必须执行一个 select 语句才能先检查?

【问题讨论】:

    标签: java android sqlite sqliteopenhelper


    【解决方案1】:

    在时间戳字段上添加UNIQUE 限定符。然后,您可以通过调用inserWithOnConflict() 并将CONFLICT_FAIL 作为冲突算法参数传递来选择您想要的行为。

    【讨论】:

    • 这是否意味着任何具有相同时间戳的插入都会被简单地忽略,或者它们是否会引发错误等?
    • 看看我链接的javadocs。你可以选择你想要的行为。 CONFLICT_FAIL 会导致抛出异常,
    • 抱歉帖子已被编辑。我现在看到了。谢谢! 5内可以接受。
    猜你喜欢
    • 1970-01-01
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    相关资源
    最近更新 更多