在数据删除后,手动执行VACUUM命令,执行方式很简单
sqlite> vacuum;
VACUUM命令会清空“空闲列表”,把数据库尺寸压缩到最小。但是要耗费一些时间。
FQA里面说,在Linux的环境下,大约05秒/M。并且要使用两倍于数据库文件的空间。
我憎恨此FQA,他只说系统环境,不说机器硬件环境。我在测试手机上执行用了将近13秒时间压缩了将近3M的空间。至于它所占用的另一部分空间,是生成了一个db-journal后缀名的临时文件。(这个问题对我现在来说是无所谓的。)
mysql中:
可以使用两条语句完成
1查询前十条数据
select id from xxx limit 0,10;
2根据查询出的结果删除数据
delete from xxx where id in ( 查询出的结果 );
sqlite3数据库数据库支持limit查询,所以删除的方法和mysql一样的。
希望我的回答对你有帮助,祝您生活愉快!
sql之truncate 、delete与drop区别 相同点: truncate 和不带 where 子句的 delete,以及 drop 都会删除表内的数据不同点:1 truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的约束(constrain)
char testername[10]="dsadas";
char testerpassword[10]="1231231";
char strsql[100]= "delete from testerable where testername ='";
strcat(strsql,testername);
strcat(strsql,"' and testerpassword='");
strcat(strsql,testerpassword);
strcat(strsql,"'");
mark = sqlite3_exec (slqdatadb,sqlstr,NULL,NULL,&errmsg);
test1db是整个数据库文件,而不是一个表,它可以包括多个表 import os osunlink("test1db") 用上面的代码删除test1db文件 如要删除单个表people: conexecute('drop table people')
能变通么,将SELECT DISTINCT SIID FROM Bname查出来的数据先备份到另外表呢,如SELECT DISTINCT SIID into 表A FROM Bname,,再将Bname删除掉。。将表A的数据回插到Bname表里。
以上就是关于超级奇怪的sqlite数据库被占用而删除不了的有关问题,有高手吗全部的内容,包括:超级奇怪的sqlite数据库被占用而删除不了的有关问题,有高手吗、我还想问下,你知道如何删除mysql或者sqlite3数据库中前面10条的数据吗是在什么都不知道的情况下删除!、sqlite 删除数据库是drop还是delete快等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)