对于我想知道我的数据库,即哪些表在我的数据库结合,对于被包括列的每个表等我怎样才能接收SQLite数据库布局?
的sqlite_master
表仅包含表信息的布局的向后兼容性的目的。理论上,我可以通过SQLite API访问这些元数据信息,如sqlite3_column_database_name
,sqlite3_column_table_name
,sqlite3_column_origin_name
。
我能有直接SQL查询接收这个数据,或者在内部存储?
对于我想知道我的数据库,即哪些表在我的数据库结合,对于被包括列的每个表等我怎样才能接收SQLite数据库布局?
的sqlite_master
表仅包含表信息的布局的向后兼容性的目的。理论上,我可以通过SQLite API访问这些元数据信息,如sqlite3_column_database_name
,sqlite3_column_table_name
,sqlite3_column_origin_name
。
我能有直接SQL查询接收这个数据,或者在内部存储?
那么它不是stricly讲SQL,但可被访问为 SQL中的所有源码实现我所知道的:
http://www.sqlite.org/pragma.html#pragma_table_info
一个例子:
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 statments再现数据。
如果你想要的部分只是表的列表,那么.tables
将为你做。
Documentation(向下滚动到“特殊命令。”)
_.schema_和_.tables_只是'SELECT sql FROM sqlite_master;'和'SELECT name FROM sqlite_master WHERE type ='的快捷方式表';'相应地(当然实际使用的语句更复杂 - 检查你的[参考](http://www.sqlite.org/sqlite.html) – Ilia
的SQLITE_MASTER表包含哪些表有说明。它没有列出你实际使用的表或列; SQLite根本不理解。 –
我可以不清楚地解释:我不想知道“我实际使用的是哪些表格或列”,我希望得到“有哪些表格的描述”以及哪些**列表包含在这些列表中表。 – Ilia