如何在sqlite中删除前N条记录
如题,没有主键,我只要删除前N条记录。n数值大概在千万级别的。
没有主键
有没有其它可供排序的字段?
SQL code:
delete from tb where id in (select top n id from tb)
有的。可是数据上千万条的
delete from tt where 排序的字段 in (select 排序的字段 from tt order by 排序的字段 limit 0,n-1)
最坏的情况:这些数据都是相同的怎么办呢?
加入自增字段ID
SQL code:
delete from yourTable order by 排序的字段 limit n
测试了一下,4楼的代码可以通过
的确可以,就是效率太低,我数据库中有近亿条数据,一次删除1000万条的。
有点慢
delete from yourTable order by 排序的字段 limit n
最好在 排序的字段 上索引。
两种思路:
1种是直接删除
1种是将剩余的记录生成新表
相关问答:
环境:QNX 6.3.2
版本:SQLite 2.7.3
现象:在命令行下sqlite进去,执行.table、pragma之类、select都提示
database is locked
奇怪的是,即使是新创建一个数据库,执行上述命令也是那样。
另:在一台完 ......
更新语句中:
UPDATE sc SET AA=INT(BB)
我想让AA得到BB的整数值。可是运行报错。
不知道SQLite下 取整数部分的函数是哪个?(四舍五入的函数又是哪个?)。
如果知道还有其他函数请一并告知,谢谢。
ROUND
......
开发语言:evc
数据库:SQLite
说明:有两个界面
界面一个是用来建立数据库,并且进行数据管理功能,包括ctrlist控件显示数据库内容,增加,删除,修改等功能;
界面二,是调用数据库,进行查询,显示结 ......
数据库中有一个users表。
create table users(name text, number text);
循环插入一百条,不使用事务的话,在我的机器上需要6s。
而在我朋友的机器上这样的操作花费不到1s。
可能是哪方面的原因导 ......