如何查找SQLITE数据库文件版本

Sri*_*h S 64 database sqlite version

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

sau*_*abh 95

您可以在任何sqlite资源管理器中编写此命令,该资源库将提供sqlite版本

select sqlite_version();
Run Code Online (Sandbox Code Playgroud)

  • 这将返回库版本,而不是数据库文件版本. (38认同)
  • 虽然这不是问题的答案,但我从谷歌来到这里寻找**这个**答案...... (4认同)
  • @laalto 评论已得到官方文档的确认:https://www.sqlite.org/lang_corefunc.html#sqlite_version (2认同)

kev*_*kev 74

您可以通过以下方式获取数据库文件的版本号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
Run Code Online (Sandbox Code Playgroud)

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

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

$ file file3.db
file3.db: SQLite 3.x database
Run Code Online (Sandbox Code Playgroud)

  • 这是问题的唯一正确答案,非常感谢! (3认同)

MSD*_*561 14

版本3的正确答案是:

sqlite3 --version
Run Code Online (Sandbox Code Playgroud)

  • 这是sqlite3程序的版本,不是SQLite创建的数据库版本。 (3认同)

gal*_*ian 14

获取user_version:运行sql: PRAGMA user_version;

获取schema_version: PRAGMA schema_version;

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


Pab*_*ruz 5

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