我目前正在手机上建立一个记录事件的数据库,但由于我不想把它变成一个庞大的数据库,所以 100 个事件绰绰有余。
这将使我的数据库保持高效。
不幸的是,我没有看到限制行数的方法
String sql = "DELETE FROM myTable WHERE _id <= "+limitId;
我可以在用户启动/离开应用程序时运行此代码,但我期待有更好的方法来实现这一点
有没有更方便的方法来实现这一点?
我猜你的意思是限制 100 个最新事件?如果是这样,没有比你做的更好的方法了:检查每个插入的条目并在必要时删除旧条目。
这只是您如何或在何处进行检查的口味问题,正如 flx 提到的,您可以在 ContentProvider 中进行检查,或者您可能在实际添加新行的 BroadcastReceiver 或 Service 中进行检查。你也可以在你的桌子上设置一个触发器,但主要的想法是一样的。如果您对触发器感兴趣,请点击此处的链接:
如果您使用的是ContentProvider
,则可以在 中实现 DELETE,在onInsert
单行的每个插入中删除单行:
String sql = "DELETE FROM myTable WHERE _id IN (SELECT min(_id) FROM myTable)";