如何列出所有表或仅列出给定数据库的表

时间:2009-05-08 17:58:50

标签: sqlite metadata database-schema

您可以使用

获取数据库列表
PRAGMA database_list

或使用

在“主”数据库中的表列表
select name from sqlite_master where type='table'

但正如我刚刚写的那样,它只返回“主”数据库中的表,而且我没有办法知道其他数据库中有哪些表。

那么如何列出其他DB中的表(稍后附加)?

谢谢, - DD

PS:我可以考虑为通过pragma database_list列出的每个数据库创建一个单独的sqlite *,并且他们在那些中执行“从sqlite_master选择名称,其中type ='table'”N次(因为每个一个是现在的“主要”),但这听起来像应该是可能的,而不诉诸于解决方案,没有???

1 个答案:

答案 0 :(得分:0)

啊啊啊,通过查看How do I open an in-memory database file into sqlite3

的答案找到了答案

由于每个数据库都有一个sqlite_master ,我需要做的就是在sqlite_master前加上“DB_name”。其中DB_name对应于PRAGMA database_list返回的名称列。