Cách tìm phiên bản tệp cơ sở dữ liệu SQLITE


82

Tôi có một vài tệp cơ sở dữ liệu sqlite. Tôi muốn biết phiên bản tệp cơ sở dữ liệu tức là nếu cơ sở dữ liệu được tạo bằng sqlite2 hoặc sqlite3 hoặc bất kỳ phiên bản chính / phụ nào khác (không phải thư viện sqlite hoặc trình điều khiển hoặc user_version hoặc schema_version).


3
Bạn nên đánh dấu câu trả lời được bình chọn cao nhất bên dưới làm câu trả lời.
Fmstrat

14
Tôi có ý kiến ​​khác. OP nên chấp nhận câu trả lời đã trả lời câu hỏi của anh ấy và giúp anh ấy. Thông thường, đó không phải là câu trả lời phổ biến nhất, và đôi khi câu trả lời phổ biến nhất lại bị sai.
Mawg nói hãy phục hồi Monica

Câu trả lời:


119

Bạn có thể viết lệnh này trong bất kỳ trình khám phá sqlite nào sẽ cung cấp phiên bản sqlite

select sqlite_version();

49
Thao tác này sẽ trả về phiên bản thư viện, không phải phiên bản tệp cơ sở dữ liệu.
laalto

@laalto nhận xét được xác nhận bởi tài liệu chính thức này: sqlite.org/lang_corefunc.html#sqlite_version
Paolo Fulgoni

Trên thực tế, chức năng trước trong liên kết @Paolo tham khảo sqlite_source_id (), với điều đó bạn chỉ cần có để xem SQLite ngày phát hành và bạn có thể nhận được phiên bản
houssin olivier

4
Trong khi đây không phải là câu trả lời cho câu hỏi, tôi đã đến đây từ google để tìm kiếm câu trả lời này
o0 '.

85

Bạn có thể lấy số phiên bản của tệp cơ sở dữ liệu bằng cách Magic Header String:

  • sqlite2 ==> 48 byte đầu tiên
  • sqlite3 ==> 16 byte đầu tiên

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

$ head -c 16 file3.db
SQLite format 3

Cách dễ dàng hơn là sử dụng filelệnh:

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

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

5
Đó là câu trả lời đúng duy nhất của câu hỏi, cảm ơn rất nhiều!
Jérôme B

Cách ngây thơ là để mở file với Notepad ++ (không làm điều này nếu tập tin là lớn!)
Paolo Fulgoni

@PaoloFulgoni XVI32 cũng là một công cụ tốt cho những tác vụ này.
Nils Lindemann

21

Lấy user_version: chạy sql: PRAGMA user_version;

Nhận schema_version: PRAGMA schema_version;

Khi tạo tệp cơ sở dữ liệu (.db), người dùng có thể đặt user_version.


18

Câu trả lời đúng từ phiên bản 3 của chương trình sqlite là:

sqlite3 --version

2
Đây là phiên bản của chương trình sqlite3, không phải phiên bản của cơ sở dữ liệu được tạo bởi SQLite.
Matt Chan

4

Bạn có thể trích xuất thông tin từ tệp tiêu đề . Nó sẽ yêu cầu bạn mở tệp cơ sở dữ liệu 'bằng tay' nhưng tôi không biết liệu có hàm API để lấy thông tin này hay không.


1

Bạn phải mở python shell sau đó viết các bước sau:

import sqlite3

sqlite3.sqlite_version

Điều này cung cấp cho bạn phiên bản sqlite3 được Python sử dụng.
John Go-Soco

Có thể không đúng đối với một số người dùng, nhưng tôi nên chỉ ra rằng trong trường hợp của tôi, sử dụng Django trên Ubuntu 18.04, đó thực sự là cách duy nhất hoạt động. Thật kỳ lạ khi thử "sqlite3 --version" tại trình bao lệnh sẽ cho rằng sqlite3 chưa được cài đặt, trong khi thực hiện nó bên trong python cho tôi biết phiên bản django / python đang sử dụng, đó là những gì tôi đang tìm kiếm.
rossdavidh

0

Nếu bạn có kết nối dữ liệu với nó trong Visual Studio, bạn có thể nhấp chuột phải vào cơ sở dữ liệu trong Server Explorer, chọn thuộc tính và phiên bản sẽ được hiển thị trong cửa sổ thuộc tính, (đáng ngạc nhiên là trong Phiên bản). Bạn có thể cần nhấp chuột trái vào cơ sở dữ liệu trước để mở nó.


1
Tôi nghĩ OP đang hỏi về sqlite chứ không phải sql-server.
Kshitiz Sharma

0

Tôi thấy đây là phương pháp dễ nhất để xác định phiên bản của sqlite. Chạy Python IDLE Shell, sau đó thực hiện như sau:

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

Trong trường hợp của tôi, nó là 2.6.0. Hy vọng điều này sẽ giúp ... Mark


2
fyi, để chạy Python IDLE Shell, chỉ cần nhập vào pythonthiết bị đầu cuối, sau đó bạn sẽ thấy>>>
thehme

9
Điều này cung cấp phiên bản của mô-đun, không phải phiên bản SQLite. Để làm như vậy, hãy sử dụng sqlite3.sqlite_version. docs.python.org/3.5/library/...
Bertrand Bordage

0

Kiểm tra tệp thủ công

sqlite3.version Số phiên bản của mô-đun này, dưới dạng một chuỗi. Đây không phải là phiên bản của thư viện SQLite.

sqlite3.version_info Số phiên bản của mô-đun này, dưới dạng một bộ số nguyên. Đây không phải là phiên bản của thư viện SQLite.

sqlite3.sqlite_version Số phiên bản của thư viện SQLite thời gian chạy, dưới dạng một chuỗi.

sqlite3.sqlite_version_info Số phiên bản của thư viện SQLite thời gian chạy, dưới dạng một bộ số nguyên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.