Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何接收SQLite数据库布局?_Sqlite - Fatal编程技术网

如何接收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'相应地(当然,实际使用的语句更复杂-请检查您的