我想知道在Qt / C ++中用SQLite验证数据库结构的“最佳”方法是什么。我正在使用SQLite,所以有一个文件包含我的数据库,我想确保在启动程序时,数据库的结构应该是这样的 - 即,它有X个表,每个表都有自己的Y列,有适当的名字等。有人能指出我正确的方向吗?非常感谢!
答案 0 :(得分:6)
您可以使用此查询获取数据库中所有表的列表:
select tbl_name from sqlite_master;
然后对于返回的每个表,运行此查询以获取列信息
pragma table_info(my_table);
对于pragma,结果集的每一行都将包含:列索引,列名,列的类型亲缘关系,列是否为NULL以及列的默认值。
(我假设您知道如何在SQLite C界面中对数据库运行SQL查询。)
答案 1 :(得分:2)
如果您有QT并因此有QtSql
,那么您还可以使用QSqlDatabase::tables()
(API doc)方法获取表格,QSqlDatabase::record(tablename)
获取字段名称。它还可以为您提供主键,但是有关详细信息,您必须遵循pkh的建议才能使用table_info
编译指示。