当从SQLite数据库中删除数据时,它不会被物理删除,而是会被标记为已删除并且不会在查询中检索。这样做可以快速运行。但没有释放可用空间。要释放已删除文件占用的空间,需要执行以下操作:
QSqlQuery query(db);
query.prepare("VACUUM");
if (!query.exec())
{
QMessageBox::critical(this, "Error", "Can't compress database.");
}
注意:db是QSqlDatabase,而VACUUM是负责压缩数据库的SQLite命令。