【问题标题】:How to find SQLITE database file version如何查找 SQLITE 数据库文件版本
【发布时间】:2012-03-27 15:06:48
【问题描述】:

我的 sqlite 数据库文件很少。我想知道数据库文件版本,即数据库是使用 sqlite2 或 sqlite3 还是任何其他主/子版本(不是 sqlite 库或驱动程序或 user_version 或 schema_version)创建的。

【问题讨论】:

  • 您应该将下面投票最高的答案标记为答案。
  • 我不同意。 OP应该接受回答他的问题并帮助他的答案。很多时候,这不是最流行的答案,有时最流行的答案是完全错误的。

标签: database sqlite version


【解决方案1】:

您可以在任何提供 sqlite 版本的 sqlite explorer 中编写此命令

select sqlite_version();

【讨论】:

  • 这将返回库版本,而不是数据库文件版本。
  • @laalto 评论由官方文档确认:sqlite.org/lang_corefunc.html#sqlite_version
  • 确实,@Paolo 链接中的上述函数引用了 sqlite_source_id(),您只需查看 SQLite 发布日期即可获得版本
  • 虽然这不是问题的答案,但我是从谷歌来这里搜索 this 答案...
【解决方案2】:

您可以通过Magic Header String获取数据库文件的版本号:

  • sqlite2 ==> 前 48 个字节
  • sqlite3 ==> 前 16 个字节

$ head -c 48 file2.db
** This file contains an SQLite 2.1 database **

$ head -c 16 file3.db
SQLite format 3

更简单的方法是使用file 命令:

$ file file2.db
file2.db: SQLite 2.x database

$ file file3.db
file3.db: SQLite 3.x database

【讨论】:

  • 这是问题的唯一正确答案,非常感谢!
  • 比较幼稚的方法是用Notepad++打开文件(文件大就不要这样做!)
  • @PaoloFulgoni XVI32 也是完成这些任务的好工具。
【解决方案3】:

获取user_version

运行 SQL:PRAGMA user_version;

获取schema_version:

运行 SQL:PRAGMA schema_version;

创建数据库文件(.db)时,user_version可以由用户设置。

【讨论】:

    【解决方案4】:

    第三版sqlite程序的正确答案是:

    sqlite3 --version
    

    【讨论】:

    • 这是sqlite3程序的版本,不是SQLite创建的数据库的版本。
    【解决方案5】:

    您可以从header file 中提取信息。它需要您“手动”打开数据库文件,但我不知道是否有 API 函数可以获取此信息。

    【讨论】:

      【解决方案6】:

      你必须打开 python shell 然后编写这些步骤:

      import sqlite3
      
      sqlite3.sqlite_version
      

      【讨论】:

      • 这为您提供了 Python 使用的 sqlite3 版本。
      • 对于某些用户可能不正确,但我应该指出,就我而言,在 Ubuntu 18.04 上使用 Django,它实际上是唯一可行的方法。奇怪的是,在命令 shell 中尝试“sqlite3 --version”会声称没有安装 sqlite3,而在 python 中执行它会告诉我 django/python 使用的是什么版本,这正是我正在寻找的。​​span>
      【解决方案7】:

      我发现这是确定 sqlite 版本的最简单方法。 运行 Python IDLE Shell,然后执行以下操作:

      >>> import sqlite3
      >>> sqlite3.version
      '2.6.0'
      

      就我而言,它是 2.6.0。 希望这可以帮助... 标记

      【讨论】:

      • fyi,要运行 Python IDLE Shell,只需在终端中输入 python,您就会看到 >>>
      • 这给出了模块的版本,而不是 SQLite 版本。为此,请使用sqlite3.sqlite_versiondocs.python.org/3.5/library/…
      【解决方案8】:

      如果你在 Visual Studio 中有数据连接,你可以在服务器资源管理器中右键单击数据库,选择属性,版本将显示在属性窗口中,(在版本下,令人惊讶的是)。您可能需要先左键单击数据库才能打开它。

      【讨论】:

      • 我认为 OP 询问的是 sqlite 而不是 sql-server。
      【解决方案9】:

      检查手册文件

      sqlite3.version 此模块的版本号,作为字符串。这不是 SQLite 库的版本。

      sqlite3.version_info 此模块的版本号,作为整数元组。这不是 SQLite 库的版本。

      sqlite3.sqlite_version 运行时 SQLite 库的版本号,以字符串形式。

      sqlite3.sqlite_version_info 运行时 SQLite 库的版本号,作为整数元组。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-17
        相关资源
        最近更新 更多