sqlite之按先插入先删除规则限制记录数

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,用时间来排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值