sqlite之按先插入先删除规则限制记录数
-
首先创建一个带时间的表,并插入一些记录
-
查询记录
-
现在总共有11条记录
-
执行语句:delete from record where rowid in (select rowid from record order by time asc limit 2);
-
删除最先插入的两条记录,然后查询结果如下(可不加order by time asc,默认是升序排列):
* 也可设置ID为主键加入自增关键字AUTOINCREMENT,设置ID自增,然后使用ID来排列删除先插入的数据,如:delete from record where rowid in (select ID from record order by ID asc limit 2);
-
数据库自带的自增量rowid虽然也可以用,但是相比设置AUTOINCREMENT的ID字段,rowid在超出最大值时将自动索引未使用(插入失败或已删除的行号,即未使用的行号)的行号来使用。这样就会导致排序时出现逻辑错误;而AUTOINCREMENT声明的字段ID,在达到最大值时插入数据不会索引前面未使用的序号,而是抛出异常。个人认为最好的办法就是创建时间time,用时间来排序。