【问题标题】:Delete entry in SQLite database automatically (android)自动删除 SQLite 数据库中的条目 (android)
【发布时间】:2012-07-14 19:42:42
【问题描述】:

如何告诉我的数据库在创建新行时自动删除 ID 最低的条目? 我希望在表中有十多行时完成此操作。

这是我的 createEntry 方法:

public long createEntry(String latitude, String longitude) {
    // TODO Auto-generated method stub
    ContentValues cv = new ContentValues();

    cv.put(KEY_LATITUDE, latitude);     
    cv.put(KEY_LONGITUDE, longitude);



    return myDatabase.insert(DATABASE_TABLE, null, cv);
}

【问题讨论】:

    标签: android database eclipse sqlite


    【解决方案1】:

    如果您想删除具有最小 id 的“最旧”行,请使用 Rolling rows in SQL table 中的 this answer

    但是,SQLite 表的行 ID 数是最大的。一旦达到此限制,使用 integer primary key autoincrement 的表将搜索旧的、未使用的行 ID 以进行新插入。这可能导致最新的行具有 lowest 行 ID(并首先被删除)。

    了解此限制通常为 9223372036854775807。如果您希望在您的智能手机应用中超过这么多的插入:

    1. 你疯了。
    2. 您可以在触发器中使用时间戳。

    【讨论】:

    • 感谢您的回答!好吧,我可能不会使用那么多条目,但我想限制条目的数量以使数据库更易于处理。我有一堆不同的数据库,每个数据库都更新频繁,我只需要最后十行信息,因此其他数据库无趣。
    • “我想限制条目的数量以使数据库更易于处理” 我发布的链接使用了一个触发器,它可以防止您必须多次访问数据库来检查行数和删除不必要的行,触发器在一次访问中执行此操作。
    猜你喜欢
    • 2012-10-15
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多