0

我对命令 VACUUM 从删除的 SQL 语句中释放内存有一个大问题。

我正在制作一个 Cordova Android 应用程序,我知道当我使用 DELETE SQL 语句时,应用程序的空间不会关闭,......空间像碎片硬盘一样持续存在。

然后,我看到 VACUUM 可以压缩我的数据库,但我有一个问题!

我使用 SQLite3,所有站点中的 VACUUM 都说不能在事务中执行,如下所示:

var db = window.sqlitePlugin.openDatabase({name:"maintenance", location:'default'});
db.transaction(function (tx) {
   tx.executeSql('VACUUM', [], function (tx, results) {
      alert('done');
 }, function (tx, error) {
      alert('error');
      alert(error.message);
   });
});

好的,那么,如果我不能在事务中做,你能告诉我如何在不写行命令的情况下执行真空或自动真空或类似压缩 BD 的东西吗?(记住它是一个移动应用程序)

4

1 回答 1

1

根据GitHub Page,您应该能够在事务之外执行 SQL db.executeSql

db.executeSql("VACUUM", [], function(rs) {
    // ok
}, function(err) {
    // handle error
});
于 2017-05-09T15:01:32.557 回答