我正在开发a Rust application for user registration via SSH(就像为SDF工作的人一样)。
我正在使用SQLite3数据库作为后端来存储有关用户的信息。
我正在打开数据库文件(如果不存在,则创建它),但是我不知道检查数据库中是否存在具有预期结构的必要表的方法。
我试图将PRAGMA schema_version
用于版本控制,但是这种方法不可靠。
我发现有些帖子的答案与我的问题密切相关:
答案 0 :(得分:0)
我正在打开数据库文件(如果不存在则创建它) 但我不知道检查必要表的方法
我发现查询 sqlite_master 来检查表,索引,触发器和视图以及使用 PRAGMA table_info(the_table_name)
来检查列的列。
例如以下内容将使您获得核心的基本信息,然后能够相对轻松地进行处理(仅用于演示表):-
SELECT name, sql FROM sqlite_master WHERE type = 'table' AND name LIKE 'my%';
具有预期结构
PRAGMA table_info(mytable);
第一个结果(例如):-
而第二个结果(用于mytable):-
如果您使用的是SQLite 3.16.0或更高版本,则可以使用PRAGMA Functions(例如pragma_table_info(table_name)),而不是3.16.0之前的两步方法。