Как я мог получить макет базы данных SQLite? - PullRequest
1 голос
/ 02 августа 2011

В целях обратной совместимости я хотел бы знать схему моей базы данных, то есть, какие таблицы включены в мою базу данных, для каждой таблицы, какие столбцы включены и т. Д.

Таблица sqlite_master содержит толькотаблица информации.Теоретически у меня есть доступ к этой информации метаданных через SQLite API, такой как sqlite3_column_database_name, sqlite3_column_table_name, sqlite3_column_origin_name.

Могу ли я иметь прямой SQL-запрос для получения этих данных или егохранится внутри?

Ответы [ 2 ]

3 голосов
/ 02 августа 2011

Ну, это не строго говоря SQL, , но он доступен как SQL во всех реализациях sqlite, о которых я знаю:

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         
0 голосов
/ 03 августа 2011

Я хотел бы получить «описание таблиц»

Я не совсем уверен, что вы имеете в виду.

Вы можете получить операторы SQL, необходимые для повторного создания вашей схемы, с помощью .schema.

sqlite> .schema
CREATE TABLE a (n integer);
CREATE TABLE b (n integer);

Кроме того, .dump предоставит вам те же операторы SQL и добавитВСТАВЬТЕ отчеты для воспроизведения данных.

Если часть того, что вы хотите, это просто список таблиц, то .tables сделает это за вас.

Документация (прокрутите вниз до «Специальные команды ...»)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...