我有一个sqlite数据库(在android上),我想存储一些数据的最新N条目。保持最新的n条目在表
表的主键是日期字段。基本上,每当我在达到阈值后插入一行时,我想从表中删除最旧的条目。
有没有特别聪明/很好的方法来做到这一点?请注意,每次插入后我都会检查不变量(nr行< = THRESHOLD),所以我们不必处理任何事情,只需删除最早的条目即可。
什么我打算做的主要是:
- 插入数据
- 如果表中的COUNT(*)< =门槛:转到4
- DELETE FROM表WHERE日期==(SELECT按日期排序的日期ASC LIMIT 1);
- DONE
注意我使用ORMlite,但因为有参与,我可以只使用原始的SQL没有用户数据,所以不应该是一个问题。
这不违反单值子查询规则吗? 3.DELETE FROM table WHERE date ==(SELECT date from table order by date ASC); – 2012-04-14 22:35:56
@Chris在那里应该至少有一个限制1。但它应该被视为伪代码 - 我仍在考虑如何最好地实现它 - 我只是认为一些代码会使它更容易理解。 – Voo 2012-04-14 22:37:55