【问题标题】:How to vacuum sqlite database?如何清理sqlite数据库?
【发布时间】:2013-08-08 13:13:18
【问题描述】:

我想知道如何清理 sqlite 数据库。 我从命令提示符尝试了整个数据库的语法 MANUAL VACUUM 命令:

 $sqlite3 database_name "VACUUM;";

但它给出的错误是:

near "database_name": syntax error.

还有自动真空:

PRAGMA auto_vacuum = INCREMENTAL;

并针对特定表进行了尝试:

VACUUM table_name;

但没有结果。

【问题讨论】:

    标签: sqlite vacuum


    【解决方案1】:

    您无需在语法中指定表名。只有VACUUM 有效。

    此外,它只会清理主数据库,不会清理任何附加的数据库文件。

    有关详细信息,请参阅 SQLite documentation

    【讨论】:

    • 这个页面表明它可能在桌子上tutorialspoint.com/sqlite/sqlite_vacuum.htm
    • VACUUM 来自 sqlite3 命令行将仅 VACUUM 主数据库。附加的数据库只能从 sqlite3 版本version 3.15.0 进行 VACUUMED。对于旧版本,必须指定数据库名称 ,这适用于 @yöliitäjä 中提到的 bash 答案:$sqlite3 database_name 'VACUUM;'
    【解决方案2】:

    给出这样的命令:

    $sqlite3 database_name 'VACUUM;'
    

    事实上,这也是从命令行执行其他查询的方法:

    $sqlite3 database_name 'select * from tablename;'
    

    您可以使用数据库的完整路径:

    $sqlite3 /path/to/db/foo.db 'VACUUM;'
    

    【讨论】:

      【解决方案3】:

      运行命令:

      VACUUM;
      

      如果您使用 DB Browser for Sqlite 或

      从命令提示符打开 Sqlite:

      cd C:\your_folder
      C:\Users\your_user\AppData\Local\Android\Sdk\platform-tools\sqlite3.exe  -line your_db_name.db
      

      然后运行

      VACUUM;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-22
        • 2020-06-29
        • 1970-01-01
        • 2011-09-06
        • 1970-01-01
        • 2011-09-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多