Как вывести список всех таблиц или только таблицы данной базы данных

Вы можете получить список баз данных, используя

PRAGMA database_list

или список таблиц в «основной» базе данных с использованием

select name from sqlite_master where type='table'

но, как я только что написал, он возвращает только таблицы из «основной» БД, и я не вижу способа узнать, какие таблицы находятся в других БД.

Так как же составить список таблиц в других БД (которые были прикреплены позже)?

Спасибо, - Д.Д.

PS: Я могу подумать об обходе создания отдельного sqlite * для каждой БД, перечисленной через pragma database_list, и они выполняют «выберите имя из sqlite_master, где type = 'table'» N раз на них (поскольку каждый из них является "main" сейчас), но это звучит как что-то, что должно быть возможно, не прибегая к обходному пути, нет ???


person ddevienne    schedule 08.05.2009    source источник


Ответы (1)


Ах, ах, нашел ответ, посмотрев на ответ для Как открыть файл базы данных в памяти в sqlite3

Поскольку существует sqlite_master per DB, все, что мне нужно сделать, это префикс sqlite_master с "DB_name". где DB_name соответствует столбцу имени, возвращаемому PRAGMA database_list.

person ddevienne    schedule 08.05.2009