如何接收SQLite数据库布局?
出于向后兼容性的目的,我想知道我的数据库的布局,即哪些表包含在我的数据库中,每个表包含哪些列,等等如何接收SQLite数据库布局?,sqlite,Sqlite,出于向后兼容性的目的,我想知道我的数据库的布局,即哪些表包含在我的数据库中,每个表包含哪些列,等等 sqlite\u master表仅包含表信息。理论上,我可以通过SQLite API访问此元数据信息,如sqlite3\u column\u database\u name,sqlite3\u column\u table\u name,sqlite3\u column\u origin\u name 我是否可以使用直接的SQL查询来接收此数据或将其存储在内部?这不是严格意义上的SQL,但在我所知
sqlite\u master
表仅包含表信息。理论上,我可以通过SQLite API访问此元数据信息,如sqlite3\u column\u database\u name
,sqlite3\u column\u table\u name
,sqlite3\u column\u origin\u name
我是否可以使用直接的SQL查询来接收此数据或将其存储在内部?这不是严格意义上的SQL,但在我所知道的所有sqlite实现中,它都可以作为SQL访问: 例如:
sqlite> .headers on
sqlite> .mode column
sqlite> CREATE TABLE foo (id INTEGER PRIMARY KEY AUTOINCREMENT, text1 TEXT NOT NULL, text2 TEXT, boolean1 BOOLEAN NOT NULL);
sqlite> pragma table_info('foo');
cid name type notnull dflt_value pk
---------- ---------- ---------- ---------- ---------- ----------
0 id INTEGER 0 1
1 text1 TEXT 1 0
2 text2 TEXT 0 0
3 boolean1 BOOLEAN 1 0
我想收到“有哪些表格的说明”
我不知道你说的是什么意思
您可以使用.schema
获取重新创建架构所需的SQL语句
sqlite> .schema
CREATE TABLE a (n integer);
CREATE TABLE b (n integer);
另外,.dump
将为您提供相同的SQL语句,并将添加INSERT语句以重现数据
如果您想要的只是一个表列表,那么.tables
将为您提供这一功能
(向下滚动至“特殊命令…”)sqlite_主表包含对所含表格的描述。它没有列出您实际使用的表或列;SQLite一点也不理解这一点。也许我解释得不清楚:我不想知道“我实际使用的是什么表或列”,我希望收到“有哪些表的描述”以及这些表中包含哪些列。非常感谢。这就是我所寻找的,这种方法很有效!谢谢,.mode列正是我要搜索的,以使选择结果易于阅读。schema和.tables是
selectsql fromsqlite\u master的唯一快捷方式
和从sqlite_master中选择名称,其中type='table'代码>相应地(当然,实际使用的语句更复杂-请检查您的